jasypt-springboot-demo
jasypt項(xiàng)目
jasypt-spring-boot項(xiàng)目
參考文檔
示例代碼
springboot 2結(jié)合jasypt-spring-boot對(duì)配置項(xiàng)進(jìn)行用戶無(wú)感的加解密,通常用來(lái)對(duì)數(shù)據(jù)庫(kù)密碼進(jìn)行加解密等
jasypt-spring-boot-start工程底層依賴jasypt項(xiàng)目,將jasypt功能包裝開(kāi)箱即用的
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
最基本的配置項(xiàng)為:
- jasypt.encryptor.password
- 需要加密的配置項(xiàng),默認(rèn)格式為ENC(${密文})
更多配置見(jiàn)jasypt-spring-boot項(xiàng)目
jasypt:
encryptor:
password: abcdefg123456 # 加密密鑰
my:
secret: ENC(WOW24hj7IB2iNagL9UNhXhBEvCs811tZPcRKPGqVmyXcBWXlsujrEmRmeupvfsDM) # 密碼,格式ENC(${密文}),對(duì)數(shù)據(jù)庫(kù)配置加密時(shí)就對(duì)spring.datasource.password進(jìn)行處理
2.加解密
采用jasyptjar包進(jìn)行加解密。由于該jar是jasypt-spring-boot-starter的底層依賴,在pom.xml中添加jasypt-spring-boot-starter依賴后,本地倉(cāng)庫(kù)中可以找到jasyptjar包
參數(shù):
- input 明文密碼
- password 加密密鑰
- algorithm 加密算法
- ivGeneratorClassName initialization vectors生成類的名稱
此例中:algorithm, ivGeneratorClassName的值采用jasypt-spring-boot項(xiàng)目中的默認(rèn)值(即前文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
注意:每次加密產(chǎn)生的密文不一樣
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.驗(yàn)證
啟動(dòng)本項(xiàng)目
curl localhost:8080/jasypt/test
獲取結(jié)果為明文:74520則表示加解密成功