springboot配置文件加密——jasypt插件

1、添加依赖

pom.xml中加入依赖:

<dependency>
    <groupId>com.github.ulisesbocchiogroupId>
    <artifactId>jasypt-spring-boot-starterartifactId>
    <version>2.0.0version>
dependency>

2、添加配置

yml配置文件中加入配置:

jasypt:
  encryptor:
    password: test	# password的值表示加密的口令

也可以在启动参数中配置:

--jasypt.encryptor.password=test

3、获取需要加密的内容

加密方法:

@Value("${jasypt.encryptor.password}") // 从配置文件中获取值
private String password;

@Test
//加密
void testEncrypt() {
    BasicTextEncryptor encryptor = new BasicTextEncryptor();
    encryptor.setPassword(password);
    // encrypt() 参数就是需要加密的字符串
    System.out.println("加密后:" + encryptor.encrypt("encryptPwd"));
}

输出内容:

加密后:cpqeINeBvhKhINUVnSDlFbectDTO+2gy

解密方法:

@Test
//解密
void testDecrypt() {
    BasicTextEncryptor encryptor = new BasicTextEncryptor();
    encryptor.setPassword(password);
    // decrypt() 参数就是加密后的字符串
    System.out.println("解密后:" + encryptor.decrypt("encryptPwd"));
}

输出内容:

解密后:encryptPwd

4、配置文件写入加密后的内容

yml配置文件中需要加密的内容加密后写入
加密写法:ENC(),ENC里面就是加密后的内容

#加密前:
#spring:
#  redis:
#    host: X.X.X.X
#    password: encryptPwd
#    port: 6379

#加密后:
spring:
  redis:
    host: X.X.X.X
    password: ENC(cpqeINeBvhKhINUVnSDlFbectDTO+2gy)
    port: 6379

到这一步就大功告成了,在使用到配置文件中的加密内容时,会自动解密。

你可能感兴趣的:(spring,boot,java)