利用到jasypt包,GitHub地址:https://github.com/ulisesbocchio/jasypt-spring-boot
每次对信息加密后都会得到不同的密文,但是解密都会得到相同的明文
jasypt包使用的是默认的PBEWithMD5AndDES算法。
1、引入依赖
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
2、配置密钥
密钥可以配置在properties或者yml文件中
jasypt:
encryptor:
password: EbfYkitulv73I2p0mXI50JMXoaxZTKJ7
但是这种是不安全的,最佳实践是配置在springboot启动类中,由JVM进行编译。代码如下:
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
//配置密钥
System.setProperty("jasypt.encryptor.password","EbfYkitulv73I2p0mXI50JMXoaxZTKJ7");
SpringApplication.run(MainApplication.class, args);
}
}
3、生成密文
@Autowired
private StringEncryptor stringEncrypor;
public String encrty(String encr) {
String encrypt = stringEncrypor.encrypt(encr);
//encrypt 就是加密之后的密文
return encrypt;
}
//解密,输入密文,可解析成明文
public String decrypt(String encr) {
String encrypt = stringEncrypor.decrypt(encr);
return encrypt;
}
4、修改配置文件
密文在配置文件用ENC(密文)配置即可
jdbc.password=ENC(jHv0WdiTLJFmOO08RQtUpg==)