以數(shù)據(jù)用戶名和數(shù)據(jù)庫密碼加密為例
第一步.導(dǎo)入pom依賴
<!-- jasypt加密 -->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
第二步.配置文件
```java
jasypt:
? encryptor:
? ? password: ${a_pass:654321}? #獲取系統(tǒng)環(huán)境變量${}
jasypt:
? encryptor:
? ? password: ${a_pass:654321}? #獲取系統(tǒng)環(huán)境變量${}
第三步.使用工具類
public class JasyptUtil {
public static void main(String[] args) {
? ????//加密: MMM752WWW257舀锨,secritery為密碼
????String url = encyptPwd("MMM752WWW257", "jdbc:mysql://127.0.0.1:3306/einvoice-medical?useUnicode=true&characterEncoding=utf-8&useSSL=false");
????String name = encyptPwd("MMM752WWW257", "root");
????String pass = encyptPwd("MMM752WWW257", "123456");
????System.out.println("ENC("+url+")");
????System.out.println("ENC("+name+")");
????System.out.println("ENC("+pass+")");
????//解密: MMM752WWW257為鹽值,使用加密后的密碼: ENC(EVVBR9iTfxRUtsZZW7FbPPUoBhqd0Zr4)
????System.out.println(decyptPwd("MMM752WWW257",url));
????System.out.println(decyptPwd("MMM752WWW257",name));
????System.out.println(decyptPwd("MMM752WWW257",pass));
}
// 加密
public static String encyptPwd(String password,String value) {
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
encryptor.setConfig(cryptor(password));
String encrypt = encryptor.encrypt(value);
return encrypt;
}
// 解密
public static String decyptPwd(String password,String value) {
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
encryptor.setConfig(cryptor(password));
String decrypt = encryptor.decrypt(value);
return decrypt;
}
private static SimpleStringPBEConfig cryptor(String password) {
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
config.setPassword(password);
config.setAlgorithm("PBEWithMD5AndDES");
config.setKeyObtentionIterations("1000");
config.setPoolSize("1");
config.setProviderName("SunJCE");
config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
config.setStringOutputType("base64");
return config;
}
}