1. 程式人生 > >在Springboot中通過jasypt 進行加密解密

在Springboot中通過jasypt 進行加密解密

1. 用途

在SpringBoot中,通過jasypt可以進行加密解密. 這個是雙向的, 且可以配置金鑰.

2.使用:

2.1 通過UT建立工具類,並認識jasypt

import org.jasypt.util.text.BasicTextEncryptor;
import org.junit.Test;

public class UtilTests {
    @Test
    public void jasyptTest() {
        BasicTextEncryptor encryptor = new BasicTextEncryptor();
        // application.properties, jasypt.encryptor.password
        encryptor.setPassword("abc");
        // encrypt root
        System.out.println(encryptor.encrypt("root"));
        System.out.println(encryptor.encrypt("root"));
        System.out.println(encryptor.encrypt("root"));

        // decrypt, the result is root
        System.out.println(encryptor.decrypt("UP/yojB7ie3apnh3mLTU7w=="));
        System.out.println(encryptor.decrypt("ik9FE3GiYLiHwchiyHg9QQ=="));
        System.out.println(encryptor.decrypt("9Obo/jq9EqmTE0QZaJFYrw=="));
    }
}

可以看出, 每次生成的密碼是不一樣的, 但是通過金鑰,可以解密成一樣的明文.

2.2  在SpringBoot中配置jasypt

  2.2.1 配置金鑰

            jasypt.encryptor.password:abc

2.2.2  使用

         spring.datasource.url: jdbc:mysql://127.0.0.1:3306/tmp?useSSL=false&useUnicode=true&characterEncoding=utf-8

         spring.datasource.username: ENC(ik9FE3GiYLiHwchiyHg9QQ==

)

         spring.datasource.password: ENC(ik9FE3GiYLiHwchiyHg9QQ==)

         spring.datasource.driver-class-name: com.mysql.jdbc.Driver

2.2.3 啟動時配置金鑰

         java -jar -Djasypt.encryptor.password=abc xxx.jar