package com.punchsettle.server; import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; import org.jasypt.iv.RandomIvGenerator; import org.jasypt.salt.RandomSaltGenerator; /** * 应用Jasypt加解密工具 */ public class AppEncryptor { /** * 密码 */ private String password; /** * 算法 */ private String algorithm; /** * 加解密实例 */ private StandardPBEStringEncryptor standardPBEStringEncryptor; public AppEncryptor(String password, String algorithm) { this.password = password; this.algorithm = algorithm; standardPBEStringEncryptor = new StandardPBEStringEncryptor(); standardPBEStringEncryptor.setPassword(password); standardPBEStringEncryptor.setAlgorithm(algorithm); standardPBEStringEncryptor.setSaltGenerator(new RandomSaltGenerator()); standardPBEStringEncryptor.setIvGenerator(new RandomIvGenerator()); } /** * 加密并输出加密结果 * @param filedName 待加密的字段名称 * @param filedStr 待加密的字符串 */ public void encryptAndShow(String filedName, String filedStr) { String encryptStr = standardPBEStringEncryptor.encrypt(filedStr); System.out.println(String.format("%s:%s", filedName, encryptStr)); } public static void main(String[] args) { AppEncryptor appEncryptor = new AppEncryptor("", "PBEWithMD5AndDES"); appEncryptor.encryptAndShow("dev", ""); AppEncryptor appEncryptor2 = new AppEncryptor("", "PBEWithMD5AndDES"); appEncryptor2.encryptAndShow("prod", ""); } }