背景
springboot默認以fatjar形式打包,配置文件打在jar包裏面的,支持將application配置外置,其他自定義配置文件可以通過設置做到外置,但是隨之而來的就是配置文件敏感信息的安全問題,如果解決敏感信息的加密就是我們需要解決的問題。
嘗試解決
調研是否存在現有的解決方案,大部分人推推薦jasypt https://github.com/jasypt/jasypt,嘗試一下,的確可以起到加密的目的,簡單介紹以下如何使用。
如何使用
添加maven依賴
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
對敏感值加密
加密
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=“敏感值” password=密碼 algorithm=PBEWITHHMACSHA512ANDAES_256 ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator
解密
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input=“敏感信息加密值” password=密碼 algorithm=PBEWITHHMACSHA512ANDAES_256 ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator
配置加密密碼
在applicaiton.yml中增加如下配置