springboot2使用jasypt-spring-boot加
2021-12-20 本文已影响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
最基本的配置项为:
- jasypt.encryptor.password
- 需要加密的配置项,默认格式为ENC(${密文})
更多配置见jasypt-spring-boot项目
jasypt:
encryptor:
password: abcdefg123456 # 加密密钥
my:
secret: ENC(WOW24hj7IB2iNagL9UNhXhBEvCs811tZPcRKPGqVmyXcBWXlsujrEmRmeupvfsDM) # 密码,格式ENC(${密文}),对数据库配置加密时就对spring.datasource.password进行处理
2.加解密
采用jasypt
jar包进行加解密。由于该jar是jasypt-spring-boot-starter
的底层依赖,在pom.xml
中添加jasypt-spring-boot-starter
依赖后,本地仓库中可以找到jasypt
jar包
参数:
- 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则表示加解密成功