package cn.lili.common.utils; import org.jasypt.encryption.pbe.PooledPBEStringEncryptor; import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; /** * 加密解密 * @author Chopper */ public class JasyptUtil { /** * Jasypt生成加密结果 * @param password 配置文件中设定的加密密码 jasypt.encryptor.password * @param value 待加密值 * @return 加密字符串 */ public static String encryptPwd(String password, String value){ PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); encryptor.setConfig(encryptor(password)); return encryptor.encrypt(value); } /** * 解密 * @param password 配置文件中设定的加密密码 jasypt.encryptor.password * @param value 待解密密文 * @return 揭秘字符串 */ public static String decryptPwd(String password, String value){ PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); encryptor.setConfig(encryptor(password)); encryptor.decrypt(value); return encryptor.decrypt(value); } /** * 加密处理 * @param password 密码 * @return 加密字符串 */ public static SimpleStringPBEConfig encryptor(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(encryptPwd("jasypt.encryptor.password","123456")); //解密 System.out.println(decryptPwd("jasypt.encryptor.password","PYVnAYh+j5C3jkMV1d+myj6JzDaUk7pcfTWUaYsvQdEVkuvIVf7Y0mOU9XkffxT8")); } }