目前,主流采用jasypt和druid对配置文件进行加密,由于后者的操作内容较为繁琐,所以推荐采用jasypt来加密配置文件的敏感内容。
操作步骤
- 在pom.xml加入依赖
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
- 创建加密工具类
/**
* 加密工具类
*
* @author zhanhong
* @date 2021/11/01 10:00
*/
public class EncryptConfigUtil {
/**
* @param salt 加密盐
* @param content 需要加密内容
* @return 加密后的内容
*/
public static String encrypt(String salt, String content) {
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
textEncryptor.setPassword(salt);
return textEncryptor.encrypt(content);
}
}
自行输入加密盐和所需加密内容产生加密后的内容
输入root产生的加密内容为:423r7LbjbmWFgD4et1sUNg==
输入123456产生的加密内容为:xH9Yxepd0dKa3gfH0WXo/g==
3.在properties或yml配置文件中输入加密内容
注意:必须采用 " ENC(加密后的内容) " 格式
- 两种启动方式
4.1 设置VM options
4.2 配置Bean(推荐)
在启动类中添加Bean
@Bean("jasyptStringEncryptor")
public StringEncryptor stringEncryptor() {
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
// 加密盐
config.setPassword("加密盐");
config.setPoolSize("1");
encryptor.setConfig(config);
return encryptor;
}