Loading

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 @ 2021-10-05 19:44  IamHzc  阅读(339)  评论(0编辑  收藏  举报