敏感信息加密
一般在信息安全要求比较高的项目中,一些敏感信息会被要求进行加密。如数据库、中间件等用户名密码。
1.pom.xml
<!-- 敏感信息加密 -->
<!-- https://mvnrepository.com/artifact/com.github.ulisesbocchio/jasypt-spring-boot-starter -->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
2.application.yml
#对应着加密Util中设置的加密密码
jasypt:
encryptor:
password: mycode
3.生成密文
public class EncryptUtils {
/**
* 配置文件中配置的password
*/
public static final String PASSWORD = "mycode";
/**
* 生成加密数据
* @param key
*/
private static void doEncrypt(String key){
BasicTextEncryptor textEncryptor =new BasicTextEncryptor ();
/*配置文件中配置的password*/
textEncryptor.setPassword(PASSWORD);
/*要加密的文本*/
String secrityKey = textEncryptor.encrypt(key);
/*将加密的文本写到配置文件中*/
log.info("{}:ENC({})",key,secrityKey);
}
/**
* 生成加密
* @param args
*/
public static void main(String[] args) {
// 数据库账号
EncryptUtils.doEncrypt("root");
// 数据库密码
EncryptUtils.doEncrypt("123456");
}
}
4.将生成的密文替换明文
username: ENC(DU3waYln9xg3rGHTk1Krrg6WkSVkmBTn)
password: ENC(UXNUuHhgYxG3gChR/FubgEQAkMyYGQaP)