美文网首页
springboot2使用jasypt-spring-boot加

springboot2使用jasypt-spring-boot加

作者: 侧身打腿 | 来源:发表于2021-12-20 15:37 被阅读0次

jasypt-springboot-demo

jasypt项目
jasypt-spring-boot项目
参考文档
示例代码

springboot 2结合jasypt-spring-boot对配置项进行用户无感的加解密,通常用来对数据库密码进行加解密等

jasypt-spring-boot-start工程底层依赖jasypt项目,将jasypt功能包装开箱即用的

1.配置

1.1.pom.xml

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.4</version>
</dependency>

1.2.application.yml

最基本的配置项为:

  1. jasypt.encryptor.password
  2. 需要加密的配置项,默认格式为ENC(${密文})
    更多配置见jasypt-spring-boot项目
jasypt:
  encryptor:
    password: abcdefg123456 # 加密密钥
my:
  secret: ENC(WOW24hj7IB2iNagL9UNhXhBEvCs811tZPcRKPGqVmyXcBWXlsujrEmRmeupvfsDM) # 密码,格式ENC(${密文}),对数据库配置加密时就对spring.datasource.password进行处理

2.加解密

采用jasyptjar包进行加解密。由于该jar是jasypt-spring-boot-starter的底层依赖,在pom.xml中添加jasypt-spring-boot-starter依赖后,本地仓库中可以找到jasyptjar包

参数:

  • input 明文密码
  • password 加密密钥
  • algorithm 加密算法
  • ivGeneratorClassName initialization vectors生成类的名称

此例中:algorithm, ivGeneratorClassName的值采用jasypt-spring-boot项目中的默认值(即前文application.yml中未配置):
algorithm: PBEWITHHMACSHA512ANDAES_256
ivGeneratorClassName: org.jasypt.iv.RandomIvGenerator

2.1.加密

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input=74520 password=abcdefg123456 algorithm=PBEWITHHMACSHA512ANDAES_256 ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator

注意:每次加密产生的密文不一样

2.2.解密

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input=WOW24hj7IB2iNagL9UNhXhBEvCs811tZPcRKPGqVmyXcBWXlsujrEmRmeupvfsDM password=abcdefg123456 algorithm=PBEWITHHMACSHA512ANDAES_256 ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator

3.验证

启动本项目

curl localhost:8080/jasypt/test

获取结果为明文:74520则表示加解密成功

相关文章

网友评论

      本文标题:springboot2使用jasypt-spring-boot加

      本文链接:https://www.haomeiwen.com/subject/gddzfrtx.html