From 177249c76aeea0b4bf8d8816d4994e3b445b45ce Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期四, 02 九月 2021 10:39:34 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/zzj' into zzj --- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/AESUtil.java | 82 ++++++++++++++++++++++------------------ 1 files changed, 45 insertions(+), 37 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/AESUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/AESUtil.java index 03ed780..b36bfc7 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/AESUtil.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/AESUtil.java @@ -1,9 +1,5 @@ package com.panzhihua.common.model.helper; -import javax.crypto.*; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.PBEKeySpec; -import javax.crypto.spec.SecretKeySpec; import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; import java.security.InvalidKeyException; @@ -13,17 +9,28 @@ import java.util.Arrays; import java.util.Base64; +import javax.crypto.*; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.PBEKeySpec; +import javax.crypto.spec.SecretKeySpec; + /** * AES 工具类 */ public class AESUtil { + private static SecretKeySpec secretKey; + private static byte[] key; /** * AES 256 加密 - * @param strToEncrypt 要加密的字符串 - * @param secKey 秘钥 - * @param salt 盐 + * + * @param strToEncrypt + * 要加密的字符串 + * @param secKey + * 秘钥 + * @param salt + * 盐 * @return 加密后的字符串 */ public static String encrypt256(String strToEncrypt, String secKey, String salt) { @@ -38,8 +45,7 @@ Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivspec); - return Base64.getEncoder() - .encodeToString(cipher.doFinal(strToEncrypt.getBytes(StandardCharsets.UTF_8))); + return Base64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes(StandardCharsets.UTF_8))); } catch (Exception e) { System.out.println("Error while encrypting: " + e.toString()); } @@ -48,12 +54,16 @@ /** * AES 256 解密 - * @param strToDecrypt 要解密的字符串 - * @param secKey 秘钥 - * @param salt 盐 + * + * @param strToDecrypt + * 要解密的字符串 + * @param secKey + * 秘钥 + * @param salt + * 盐 * @return 解密后的字符串 */ - public static String decrypt256( String strToDecrypt, String secKey, String salt) { + public static String decrypt256(String strToDecrypt, String secKey, String salt) { try { byte[] iv = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; IvParameterSpec ivspec = new IvParameterSpec(iv); @@ -72,49 +82,48 @@ return null; } - - private static SecretKeySpec secretKey; - private static byte[] key; - - public static void setKey(String myKey) - { + public static void setKey(String myKey) { MessageDigest sha = null; try { - key = myKey.getBytes("UTF-8"); + key = myKey.getBytes(StandardCharsets.UTF_8); sha = MessageDigest.getInstance("SHA-1"); key = sha.digest(key); key = Arrays.copyOf(key, 16); secretKey = new SecretKeySpec(key, "AES"); - } - catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } - catch (UnsupportedEncodingException e) { + } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } } - /** * AES 128(base64)加密 - * @param strToEncrypt 要加密的字符串 - * @param secret 秘钥 + * + * @param strToEncrypt + * 要加密的字符串 + * @param secret + * 秘钥 * @return 加密后的字符串 */ - public static String encrypt128(String strToEncrypt, String secret) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException, BadPaddingException, IllegalBlockSizeException { + public static String encrypt128(String strToEncrypt, String secret) + throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException, + BadPaddingException, IllegalBlockSizeException { setKey(secret); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, secretKey); - return Base64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes("UTF-8"))); + return Base64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes(StandardCharsets.UTF_8))); } /** * AES 128(base64) 解密 - * @param strToDecrypt 要解密的字符串 - * @param secret 秘钥 + * + * @param strToDecrypt + * 要解密的字符串 + * @param secret + * 秘钥 * @return 解密后的字符串 */ - public static String decrypt128(String strToDecrypt, String secret) throws NoSuchPaddingException, NoSuchAlgorithmException, BadPaddingException, IllegalBlockSizeException, InvalidKeyException { + public static String decrypt128(String strToDecrypt, String secret) throws NoSuchPaddingException, + NoSuchAlgorithmException, BadPaddingException, IllegalBlockSizeException, InvalidKeyException { setKey(secret); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING"); cipher.init(Cipher.DECRYPT_MODE, secretKey); @@ -140,12 +149,11 @@ class AES128Example { public static void main(String[] args) { - String[] originalString = new String[]{"51011234567892013", "13612345678", "四川省成都市高新区", "四川省成都市高新"}; + String[] originalString = new String[] {"51011234567892013", "13612345678", "四川省成都市高新区", "四川省成都市高新"}; String key = "5165465461dsfas"; - - Arrays.stream(originalString).forEach(os ->{ + Arrays.stream(originalString).forEach(os -> { try { String encryptedString = AESUtil.encrypt128(os, key); String decryptedString = AESUtil.decrypt128(encryptedString, key); @@ -153,7 +161,7 @@ System.out.println(os); System.out.println(encryptedString); System.out.println(decryptedString); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } }); -- Gitblit v1.7.1