package cn.cetc54.platform.core.common.utils;
|
|
import lombok.extern.slf4j.Slf4j;
|
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
|
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
|
|
|
/**
|
* @author
|
*/
|
@Slf4j
|
public class JasyptUtil {
|
|
/**
|
* Jasypt生成加密结果
|
* @param password 配置文件中设定的加密密码 jasypt.encryptor.password
|
* @param value 待加密值
|
* @return
|
*/
|
public static String encyptPwd(String password,String value){
|
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
|
encryptor.setConfig(cryptor(password));
|
String result = encryptor.encrypt(value);
|
return result;
|
}
|
|
/**
|
* 解密
|
* @param password 配置文件中设定的加密密码 jasypt.encryptor.password
|
* @param value 待解密密文
|
* @return
|
*/
|
public static String decyptPwd(String password,String value){
|
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
|
encryptor.setConfig(cryptor(password));
|
encryptor.decrypt(value);
|
String result = encryptor.decrypt(value);
|
return result;
|
}
|
|
public static SimpleStringPBEConfig cryptor(String password){
|
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
|
config.setPassword(password);
|
config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256");
|
config.setKeyObtentionIterations("1000");
|
config.setPoolSize(1);
|
config.setProviderName("SunJCE");
|
config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
|
config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
|
config.setStringOutputType("base64");
|
return config;
|
}
|
|
public static void main(String[] args){
|
|
//加密 若修改了第一个参数加密password记得在配置文件同步修改
|
System.out.println(encyptPwd("platform","123456"));
|
//解密
|
System.out.println(decyptPwd("platform","PYVnAYh+j5C3jkMV1d+myj6JzDaUk7pcfTWUaYsvQdEVkuvIVf7Y0mOU9XkffxT8"));
|
}
|
}
|