SpringBoot整合jasypt
Jasypt 是一个 Java 库,它允许开发人员对项目添加基本的加密功能,而无需深入了解密码学的工作原理。
步骤
1.导入依赖
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
2.配置salt值:jasypt.encryptor.password=hzc
(必须)
tips:
jasypt.encryptor.algorithm
,指定加密算法。
3.使用方式:
方法一:使用工具类。
@Test
void test1(){
//输入的密码
String inputPassword = "123456";
//数据库加密的密码
String userPassword = "V1fYHumcn+FH1PXpPbcLXTEkMzGGCflN";
//密码检查工具类
BasicPasswordEncryptor passwordEncryptor = new BasicPasswordEncryptor();
//检查密码
System.out.println(passwordEncryptor.checkPassword(inputPassword,userPassword));
}
@Test
void test2(){
//输入的密码
String inputPassword = "123456";
//更安全但是更慢
StrongPasswordEncryptor passwordEncryptor = new StrongPasswordEncryptor();
//数据库加密的密码
String userPassword = passwordEncryptor.encryptPassword("123456");
System.out.println(passwordEncryptor.checkPassword(inputPassword,userPassword));
}
tips:
StrongPasswordEncryptor
是一个加强工具类,它的安全性更高,但是更慢。
方式二:依赖注入
@Autowired
private StringEncryptor stringEncryptor;
@Test
void contextLoads() {
String password = stringEncryptor.encrypt("123456");
System.out.println("加密:"+password);
password = stringEncryptor.decrypt(password);
System.out.println("解密:"+password);
}
- 在配置文件中使用加密数据
默认方式:使用ENC()
spring.datasource.password=ENC(qYsnIG+ZEs5mYTiEloLv4tU/441BwrHu0mGQKP+RfQlek3yO6aHCbR7HfRS0oBTq)
自定义方式:
//指定前后缀
jasypt.encryptor.property.prefix=hzc(
jasypt.encryptor.property.suffix=)
spring.datasource.password=hzc(qYsnIG+ZEs5mYTiEloLv4tU/441BwrHu0mGQKP+RfQlek3yO6aHCbR7HfRS0oBTq)