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);
    }
  1. 在配置文件中使用加密数据
    默认方式:使用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)
posted @   IamHzc  阅读(363)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示
主题色彩