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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理