springboot 对敏感信息加密

在项目的配置文件中, 会有数据库密码,或其他敏感信息的配置。 一般我们都是用明文显示, 对于一些对信息比较敏感的项目, 则需要对这些配置文件中的内容加密。这里提供一个国外牛人写的第三方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的方式提供加密功能:

0b9976b2849fe72947923d0b7f7d2243c32.jpg

0e4fbbc07fa79f8d88a23d8c800da91737f.jpg

4. 将生成的密文配置到你的配置文件中:

# 这里需要把密文放在ENC函数中才能够解密
password: ENC(KwzjAZ7hbcyij20nJeR9XA==)

配置文件中只要配置了ENC开头的内容, jasypt都会在用到值的时候进行PBE解密。如果值没有以ENC开头, 则不进行解密。

转载于:https://my.oschina.net/u/857431/blog/3040384