Jasypt 对 SpringBoot 配置文件加密

使用过 SpringBoot 配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些。打开 application.properties 或 application.yml,比如 mysql 登陆密码,redis 登陆密码以及第三方的密钥等等一览无余,这里介绍一个加解密组件,提高一些属性配置的安全性。

jasypt 由一个国外大神写的一个 springboot 下的工具包。Git地址:https://github.com/ulisesbocchio/jasypt-spring-boot

pom文件中增加依赖:


    com.github.ulisesbocchio
    jasypt-spring-boot-starter
    2.0.0

application.yml文件中增加jasypt的秘钥(该秘钥自定义的):

# 加密所需的salt(盐)
jasypt.encryptor.password=G0CvDz7oJn6
# 默认加密方式PBEWithMD5AndDES,可以更改为PBEWithMD5AndTripleDES
# jasypt.encryptor.algorithm=PBEWithMD5AndDES

生成要加密的字符串:

  • 将数据库的用户名和密码进行加密
    public static void main(String[] args) {
        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
        //加密所需的salt(盐)
        textEncryptor.setPassword("G0CvDz7oJn6");
        //要加密的数据(数据库的用户名或密码)
        String username = textEncryptor.encrypt("root");
        String password = textEncryptor.encrypt("root123");
        System.out.println("username:" + username);
        System.out.println("password:" + password);
    }
  • 输出信息为:
username:i8QgEN4uOy2E1rHzrpSTYA==
password:6eaMh/RX5oXUVca9ignvtg==

配置 properties 文件

  • 将生成的加密串配置ENC(加密串)到application.properties中
# 加密所需的salt(盐)
jasypt.encryptor.password=G0CvDz7oJn6
# 默认加密方式PBEWithMD5AndDES,可以更改为PBEWithMD5AndTripleDES
# jasypt.encryptor.algorithm=PBEWithMD5AndDES
spring.datasource.username=ENC(6eaMh/RX5oXUVca9ignvtg==)
spring.datasource.password=ENC(6eaMh/RX5oXUVca9ignvtg==)

参考:

  • https://www.jianshu.com/p/323ec96c46d2

你可能感兴趣的:(Jasypt 对 SpringBoot 配置文件加密)