一个项目的配置文件往往保存了许多账号密码之类的重要信息,明文是非常不安全的,那么进行脱敏处理就很有必要了,下面看看如何操作吧~
首先介绍一下主角:Jasypt
这个开源工具提供了相当丰富的加密方式,具体可以参考其文档。
首先引入相关依赖:
<!--配置文件加密-->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
然后创建加密解密工具类:
public class JasyptUtil {
// 盐:随机输入即可
private static final String SALT = "SALT_CODE";
// 加密
private static void encrypt() {
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setPassword(SALT);
System.out.println("username: " + encryptor.encrypt("root"));
System.out.println("password: " + encryptor.encrypt("123456"));
}
// 解密
private static void decrypt() {
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setPassword(SALT);
System.out.println("username: " + encryptor.decrypt("w1tz6At82gnb4n6BZmgkaQ=="));
System.out.println("password: " + encryptor.decrypt("UjPD7C8JowwL7vLL80iSdA=="));
}
// 根据你输入的盐值计算出来加密的结果
public static void main(String[] args) {
// w1tz6At82gnb4n6BZmgkaQ==
// UjPD7C8JowwL7vLL80iSdA==
encrypt();
// root
// 123456
decrypt();
}
}
注意:当生成了目标密码之后,最好清除盐值,避免泄露