在项目的配置文件中, 会有数据库密码,或其他敏感信息的配置。 一般我们都是用明文显示, 对于一些对信息比较敏感的项目, 则需要对这些配置文件中的内容加密。这里提供一个国外牛人写的第三方jar包, 实现此功能。 (github项目连接)
1. 在pom文件中添加依赖
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
2. 在你的yml配置文件中添加主密码的配置:
jasypt:
encryptor:
password: c38fa81de411b40cbf8de95347c44c930468a8a98bf7deb3
password 可以使任意值。
3. 编写springboot testcase, 使用StringEncryptor生成密文
这里我是通过Restful API的方式提供加密功能:
4. 将生成的密文配置到你的配置文件中:
# 这里需要把密文放在ENC函数中才能够解密
password: ENC(KwzjAZ7hbcyij20nJeR9XA==)
配置文件中只要配置了ENC开头的内容, jasypt都会在用到值的时候进行PBE解密。如果值没有以ENC开头, 则不进行解密。