package com.engine.salary.encrypt; import com.engine.salary.sys.constant.SalarySysConstant; import com.engine.salary.sys.entity.po.SalarySysConfPO; import com.engine.salary.sys.enums.OpenEnum; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import weaver.general.AES; import weaver.general.BaseBean; /** * 此AES加密工具类仅用于关联应用设置中是否开启加密的应用使用 * 如另有需要,请重写工具类 */ public class AESEncryptUtil { static BaseBean bb = new BaseBean(); static String aesEncryptScrect = bb.getPropValue("hrmSalary", "AESEncryptScrect"); static SalarySysConfServiceImpl salarySysConfService = new SalarySysConfServiceImpl(); /** * AES加密 * * @param source 原始数据 * @return 加密数据 */ public static String encrypt(String source) { if (StringUtils.isNotBlank(source)) { return AES.encrypt(source, aesEncryptScrect); } return source; } /** * AES解密 * * @param encryptStr 加密字符串 * @return 解密字符串 */ public static String decrypt(String encryptStr) { if (StringUtils.isNotBlank(encryptStr)) { return AES.decrypt(encryptStr, aesEncryptScrect); } return encryptStr; } /** * AES加密 * * @param source 原始数据 * @return 加密数据 */ // public static String encrypt(String source) { // String isEncrypt = getSalarySysConfigValue(); // //防止初始化老数据时二次加密 // if (StringUtils.isNotBlank(source) && OpenEnum.OPEN.getValue().equals(isEncrypt) && !source.startsWith(SalarySysConstant.PRE_SIGN_ENCRYPT)) { // return SalarySysConstant.PRE_SIGN_ENCRYPT + AES.encrypt(source, aesEncryptScrect); // } // return source; // } /** * 应用设置是否开启加密 * * @return */ private static String getSalarySysConfigValue() { SalarySysConfPO sysConfPO = salarySysConfService.getOneByCode(SalarySysConstant.OPEN_APPLICATION_ENCRYPT); if (ObjectUtils.isEmpty(sysConfPO)) { return "1"; } return sysConfPO.getConfValue(); } /** * AES解密 * * @param encryptStr 加密字符串 * @return 解密字符串 */ // public static String decrypt(String encryptStr) { // SalarySysConfPO sysConfPo = salarySysConfService.getOneByCode(SalarySysConstant.OPEN_APPLICATION_ENCRYPT); // if (StringUtils.isNotBlank(encryptStr)) { // if (encryptStr.startsWith(SalarySysConstant.PRE_SIGN_ENCRYPT)) { // encryptStr = encryptStr.substring(4, encryptStr.length()); // return AES.decrypt(encryptStr, aesEncryptScrect); // } // //未配置加密设置时需要解密 // if (ObjectUtils.isEmpty(sysConfPo)) { // return AES.decrypt(encryptStr, aesEncryptScrect); // } // } // return encryptStr; // } /** * 用于关闭加密设置后AES解密 * * @param encryptStr 加密字符串 * @return 解密字符串 */ public static String closeEncryptSetting(String encryptStr) { // SalarySysConfPO sysConfPo = salarySysConfService.getOneByCode(SalarySysConstant.OPEN_APPLICATION_ENCRYPT); // if (StringUtils.isNotBlank(encryptStr) && encryptStr.startsWith(SalarySysConstant.PRE_SIGN_ENCRYPT)) { // encryptStr = encryptStr.substring(4, encryptStr.length()); // return AES.decrypt(encryptStr, aesEncryptScrect); // } else if (ObjectUtils.isEmpty(sysConfPo) && StringUtils.isNotBlank(encryptStr)) { // return AES.decrypt(encryptStr, aesEncryptScrect); // } // return encryptStr; return null; } }