package com.stylefeng.guns.modular.system.util; import com.stylefeng.guns.core.util.ToolUtil; import org.springframework.util.Base64Utils; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; /** * 定义AES加密解密工具类 */ public class AESUtil { private static final String KEY_ALGORITHM = "AES";//加密方式 private static final String DEFAULT_CIPHER_ALGORITHM = "AES/CBC/PKCS5Padding";//默认的加密算法 private static final String KEY = "xqT86jictTPpHMem";//密码 private static final String IV_PARAMETER = "xqT86jicxqT86jic";//偏移量 private static final String CHARSET = "UTF-8";//编码 /** * 加密操作 * @param content 待加密内容 * @return * @throws Exception */ public static String encrypt(String content) { try { if(ToolUtil.isEmpty(content)){ return content; } Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM); byte[] raw = KEY.getBytes(CHARSET); SecretKeySpec skeySpec = new SecretKeySpec(raw, KEY_ALGORITHM); IvParameterSpec iv = new IvParameterSpec(IV_PARAMETER.getBytes()); cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv); byte[] encrypted = cipher.doFinal(content.getBytes(CHARSET)); return Base64Utils.encodeToString(encrypted); }catch (Exception e){ e.printStackTrace(); } return content; } /** *解密操作 * @param content 待解密内容 * @return * @throws Exception */ public static String decrypt(String content) { try { if(ToolUtil.isEmpty(content)){ return content; } byte[] raw = KEY.getBytes(CHARSET); SecretKeySpec skeySpec = new SecretKeySpec(raw, KEY_ALGORITHM); Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM); IvParameterSpec iv = new IvParameterSpec(IV_PARAMETER.getBytes()); cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv); byte[] encrypted1 = Base64Utils.decodeFromString(content); byte[] original = cipher.doFinal(encrypted1); String originalString = new String(original, CHARSET); return originalString; } catch (Exception ex) { ex.printStackTrace(); } return content; } public static void main(String[] ages){ // String encrypt = AESUtil.encrypt("19167181339"); // System.err.println(encrypt); String travel = AESUtil.decrypt("tw1pslwtyVl58hz4A9HauCmgWtML1DKJKGIOxVhv9KE="); System.err.println(travel); // String decrypt = DESUtil.decrypt("xqT86jictTPpHMem", "uFT7jx9P7+t8n1IVQsxn7A=="); // System.err.println(decrypt); } }