在SpringBoot中,通过jasypt可以进行加密解密。这个是双向的,且可以配置密钥。
一、pom配置
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
二、yml配置密钥
1、可以在
yml
中配置
2、可以在properties
配置,jasypt.encryptor.password:abc
3、可以在jar
启动时配置,java -jar -Djasypt.encryptor.password=abc xxx.jar
jasypt:
encryptor:
password: abc
三、加密解密
每次生成的密码是不一样的,但是通过密钥,可以解密成一样的明文。
import org.jasypt.util.text.BasicTextEncryptor;
public class Test {
public static void main(String[] args) {
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
//加密所需的salt(盐):可以写常量值,也可以在配置文件里配置
textEncryptor.setPassword("abc");
String encrypt = textEncryptor.encrypt("keAY#BDzA6WmYveu");
System.out.println("加密:" + encrypt);
System.out.println("解密:" + textEncryptor.decrypt("WvVp3BmlRvXaV8I/UZtsXmMoxuCGZN65VIpEs/Sl9mI="));
}
}
四、使用加密后密码
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8
# Jasypt加密 可到common包中找到JasyptUtil加解密工具类生成加密结果 格式为ENC(加密结果)
username: test
password: ENC(WvVp3BmlRvXaV8I/UZtsXmMoxuCGZN65VIpEs/Sl9mI=)
版权声明:本文为weixin_43453386原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。