package com.sercurityControl.proteam.util; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; /** * 前后端数据传输加密工具类 * @author zyk * */ public class AesEncryptUtils { //可配置到Constant中,并读取配置文件注入,16位,自己定义 public static final String KEY_NAME = "jjqgcjjqgcjijian"; public static final String VIDEO_KEY = "297796CCB81D2553"; //参数分别代表 算法名称/加密模式/数据填充方式 public static final String ALGORITHMSTR = "AES/ECB/PKCS5Padding"; /** * 加密 * @param content 加密的字符串 * @param encryptKey key值 * @return * @throws Exception */ public static String encrypt(String content, String encryptKey) { try{ KeyGenerator kgen = KeyGenerator.getInstance("AES"); kgen.init(128); Cipher cipher = Cipher.getInstance(ALGORITHMSTR); cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(encryptKey.getBytes(), "AES")); byte[] b = cipher.doFinal(content.getBytes("utf-8")); // 采用base64算法进行转码,避免出现中文乱码 return Base64.encodeBase64String(b); }catch (Exception e){ } return null; } /** * 解密 * @param encryptStr 解密的字符串 * @param decryptKey 解密的key值 * @return * @throws Exception */ public static String decrypt(String encryptStr, String decryptKey) { try{ KeyGenerator kgen = KeyGenerator.getInstance("AES"); kgen.init(128); Cipher cipher = Cipher.getInstance(ALGORITHMSTR); cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(decryptKey.getBytes(), "AES")); // new String(aesDecrypt(Base64.decode(ciphertext),Base64.decode(key)),"UTF-8"); // new String(aesDecrypt(Base64.decode(ciphertext),Base64.decode(key))); // 采用base64算法进行转码,避免出现中文乱码 byte[] encryptBytes = Base64.decodeBase64(encryptStr); byte[] decryptBytes = cipher.doFinal(encryptBytes); return new String(decryptBytes,"UTF-8"); }catch (Exception e){ } return null; } public static String encrypt(String content) throws Exception { return encrypt(content, KEY_NAME); } public static String decrypt(String encryptStr) throws Exception { return decrypt(encryptStr, KEY_NAME); } public static void main(String[] args) { // String str="address=10.138.219.3&port=29988&user=bns4&epid=system&password=Bns@2023**&fixaddr=0"; // String rucan = encrypt(str, VIDEO_KEY); // System.out.println("加密后:" + rucan); // String mm="hc5iBaDAmyS8GHAN9mG6TSr3pInVxpRfOEfqFKdmy8OyJ4P3yJe5t92kVPKogs4JGFdr7iyNTP+Pg4o3v3o0Rh1ltCLnEwV5TyVXEueOrSg="; // System.out.println("加密后:" + mm); // String data= decrypt(rucan,VIDEO_KEY); // System.out.println("解密后:" + data);; String jm = encrypt("{" + "\"macId\":\"8F1263E0-B4\"" + "}", KEY_NAME); String data= decrypt("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",KEY_NAME); System.out.println("解密后:" + data);; System.out.println("加密后:" + jm); String jm2 = encrypt("8F1263E0-B4", KEY_NAME); System.out.println("加密后:" + jm2); } // public static void main(String[] args) throws Exception { // String in = "{\"date\":\"2022-05-06\"}"; // String rucan = encrypt("8F12497A-20", KEY_NAME); // System.out.println("加密后:" + rucan); // String out = "3qO06ijUcELmiJgymXD3CbVPiwD1+MGTxWRoC3TWm1CsTsij5kzq82tqAZelfJNqhDnk7MVfHZhgRVpkmU1U81mEemNrt4wVhte3mHbZpqOCHBmgWewBZdi3Vwpa9nYsMccJ5MVDBOYIuzORqx9R9uMzGN2vu78piAVxadJbXPjjtjJ0ybUJUZNiK2pqcPILNNUgoHO/fncy8Vj507uwqG/0DLNe7/9217FtwTyk3QbmjuqxYPzxFJjwbN0h3fjfkxQFNhnFDf22VGNBzPnpjeOOjY9/bRMxZn/CGZ6+UEI="; // String chucan = decrypt(out, KEY_NAME); // String jm = encrypt(chucan, KEY_NAME); // System.out.println("加密后:" + out); // System.out.println("加密后:" + jm); // System.out.println("解密后:" + chucan); // } // }