在Springboot中通過jasypt 進行加密解密
阿新 • • 發佈:2019-02-12
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