From d1f26741bddf6f512d62c0100d42c52be8d37e76 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 06 二月 2021 15:35:40 +0800 Subject: [PATCH] 工具类优化 --- utils/src/main/java/org/yeshi/utils/encrypt/AESUtil.java | 312 ++++++++++++++++++++++++++-------------------------- 1 files changed, 156 insertions(+), 156 deletions(-) diff --git a/utils/src/main/java/org/yeshi/utils/encrypt/AESUtil.java b/utils/src/main/java/org/yeshi/utils/encrypt/AESUtil.java index 70a65ad..9e7675e 100644 --- a/utils/src/main/java/org/yeshi/utils/encrypt/AESUtil.java +++ b/utils/src/main/java/org/yeshi/utils/encrypt/AESUtil.java @@ -1,156 +1,156 @@ -package org.yeshi.utils.encrypt; - -import java.io.UnsupportedEncodingException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.security.SecureRandom; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.KeyGenerator; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -/** - * AES鍔犺В瀵� - * - * @author Administrator - * - */ -public class AESUtil { - /** - * 128浣岮ES鍔犲瘑 - * - * @param content - * 鏄庢枃鍐呭 - * @param KEY - * 瀵嗗寵锛岄暱搴︿负16浣� - * @return - */ - @SuppressWarnings("restriction") - public static String encrypt(String content, String KEY) { - try { - KeyGenerator kgen = KeyGenerator.getInstance("AES"); - SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); - secureRandom.setSeed(KEY.getBytes()); - kgen.init(128, secureRandom); - SecretKeySpec key = new SecretKeySpec(KEY.getBytes(), "AES"); - - Cipher cipher = Cipher.getInstance("AES"); - byte[] byteContent = content.getBytes("utf-8"); - cipher.init(Cipher.ENCRYPT_MODE, key); - byte[] result = cipher.doFinal(byteContent); - return (new sun.misc.BASE64Encoder()).encode(result).replace("\n", "").replace("\r", ""); - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } catch (NoSuchPaddingException e) { - e.printStackTrace(); - } catch (InvalidKeyException e) { - e.printStackTrace(); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } catch (IllegalBlockSizeException e) { - e.printStackTrace(); - } catch (BadPaddingException e) { - e.printStackTrace(); - } - return new String(); - } - - /** - * 128浣岮ES瑙e瘑 - * - * @param contentStr - * 瀵嗘枃鍐呭 - * @param KEY - * 瀵嗗寵锛岄暱搴︿负16浣� - * @return - */ - @SuppressWarnings("restriction") - public static String decrypt(String contentStr, String KEY) { - try { - byte[] content = (new sun.misc.BASE64Decoder()).decodeBuffer(contentStr); - - KeyGenerator kgen = KeyGenerator.getInstance("AES"); - SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); - secureRandom.setSeed(KEY.getBytes()); - kgen.init(128, secureRandom); - - SecretKeySpec key = new SecretKeySpec(KEY.getBytes(), "AES"); - Cipher cipher = Cipher.getInstance("AES"); - cipher.init(Cipher.DECRYPT_MODE, key); - byte[] result = cipher.doFinal(content); - return new String(result); - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } catch (NoSuchPaddingException e) { - e.printStackTrace(); - } catch (InvalidKeyException e) { - e.printStackTrace(); - } catch (IllegalBlockSizeException e) { - e.printStackTrace(); - } catch (BadPaddingException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } - return new String(); - } - - public static String decrypt(String contentStr, String keyBase64, String ivBase64) { - try { - byte[] content = (new sun.misc.BASE64Decoder()).decodeBuffer(contentStr); - IvParameterSpec iv = new IvParameterSpec((new sun.misc.BASE64Decoder()).decodeBuffer(ivBase64)); - SecretKeySpec skeySpec = new SecretKeySpec((new sun.misc.BASE64Decoder()).decodeBuffer(keyBase64), "AES"); - - Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7PADDING"); - cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv); - byte[] original = cipher.doFinal(content); - return new String(original); - } catch (Exception ex) { - ex.printStackTrace(); - } - return null; - } - - /** - * 128浣岮ES瑙e瘑 - * - * @param contentStr - * -瀵嗘枃鍐呭 - * @param k - * -瀵嗗寵鍐呭 16浣� - * @return - */ - public static String decrypt(byte[] contentStr, String k) { - try { - byte[] content = contentStr; - KeyGenerator kgen = KeyGenerator.getInstance("AES"); - SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); - secureRandom.setSeed(k.getBytes()); - kgen.init(128, secureRandom); - - SecretKeySpec key = new SecretKeySpec(k.getBytes(), "AES"); - Cipher cipher = Cipher.getInstance("AES"); - cipher.init(Cipher.DECRYPT_MODE, key); - byte[] result = cipher.doFinal(content); - return new String(result, "utf-8"); - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } catch (NoSuchPaddingException e) { - e.printStackTrace(); - } catch (InvalidKeyException e) { - e.printStackTrace(); - } catch (IllegalBlockSizeException e) { - e.printStackTrace(); - } catch (BadPaddingException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } - return new String(); - } - -} +package org.yeshi.utils.encrypt; + +import java.io.UnsupportedEncodingException; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; + +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.KeyGenerator; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; + +/** + * AES鍔犺В瀵� + * + * @author Administrator + * + */ +public class AESUtil { + /** + * 128浣岮ES鍔犲瘑 + * + * @param content + * 鏄庢枃鍐呭 + * @param KEY + * 瀵嗗寵锛岄暱搴︿负16浣� + * @return + */ + @SuppressWarnings("restriction") + public static String encrypt(String content, String KEY) { + try { + KeyGenerator kgen = KeyGenerator.getInstance("AES"); + SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); + secureRandom.setSeed(KEY.getBytes()); + kgen.init(128, secureRandom); + SecretKeySpec key = new SecretKeySpec(KEY.getBytes(), "AES"); + + Cipher cipher = Cipher.getInstance("AES"); + byte[] byteContent = content.getBytes("utf-8"); + cipher.init(Cipher.ENCRYPT_MODE, key); + byte[] result = cipher.doFinal(byteContent); + return (new sun.misc.BASE64Encoder()).encode(result).replace("\n", "").replace("\r", ""); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (NoSuchPaddingException e) { + e.printStackTrace(); + } catch (InvalidKeyException e) { + e.printStackTrace(); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } + return new String(); + } + + /** + * 128浣岮ES瑙e瘑 + * + * @param contentStr + * 瀵嗘枃鍐呭 + * @param KEY + * 瀵嗗寵锛岄暱搴︿负16浣� + * @return + */ + @SuppressWarnings("restriction") + public static String decrypt(String contentStr, String KEY) { + try { + byte[] content = (new sun.misc.BASE64Decoder()).decodeBuffer(contentStr); + + KeyGenerator kgen = KeyGenerator.getInstance("AES"); + SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); + secureRandom.setSeed(KEY.getBytes()); + kgen.init(128, secureRandom); + + SecretKeySpec key = new SecretKeySpec(KEY.getBytes(), "AES"); + Cipher cipher = Cipher.getInstance("AES"); + cipher.init(Cipher.DECRYPT_MODE, key); + byte[] result = cipher.doFinal(content); + return new String(result); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (NoSuchPaddingException e) { + e.printStackTrace(); + } catch (InvalidKeyException e) { + e.printStackTrace(); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + return new String(); + } + + public static String decrypt(String contentStr, String keyBase64, String ivBase64) { + try { + byte[] content = (new sun.misc.BASE64Decoder()).decodeBuffer(contentStr); + IvParameterSpec iv = new IvParameterSpec((new sun.misc.BASE64Decoder()).decodeBuffer(ivBase64)); + SecretKeySpec skeySpec = new SecretKeySpec((new sun.misc.BASE64Decoder()).decodeBuffer(keyBase64), "AES"); + + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7PADDING"); + cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv); + byte[] original = cipher.doFinal(content); + return new String(original); + } catch (Exception ex) { + ex.printStackTrace(); + } + return null; + } + + /** + * 128浣岮ES瑙e瘑 + * + * @param contentStr + * -瀵嗘枃鍐呭 + * @param k + * -瀵嗗寵鍐呭 16浣� + * @return + */ + public static String decrypt(byte[] contentStr, String k) { + try { + byte[] content = contentStr; + KeyGenerator kgen = KeyGenerator.getInstance("AES"); + SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); + secureRandom.setSeed(k.getBytes()); + kgen.init(128, secureRandom); + + SecretKeySpec key = new SecretKeySpec(k.getBytes(), "AES"); + Cipher cipher = Cipher.getInstance("AES"); + cipher.init(Cipher.DECRYPT_MODE, key); + byte[] result = cipher.doFinal(content); + return new String(result, "utf-8"); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (NoSuchPaddingException e) { + e.printStackTrace(); + } catch (InvalidKeyException e) { + e.printStackTrace(); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + return new String(); + } + +} -- Gitblit v1.8.0