From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 09 六月 2025 11:54:00 +0800 Subject: [PATCH] 6.9新增登录失败冻结逻辑 --- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AES.java | 39 ++++++++++++++++++--------------------- 1 files changed, 18 insertions(+), 21 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AES.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AES.java index 4d4c219..f1f4374 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AES.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AES.java @@ -1,17 +1,12 @@ package com.panzhihua.common.utlis; - import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; 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.SecretKey; +import javax.crypto.*; import javax.crypto.spec.SecretKeySpec; public class AES { @@ -27,12 +22,16 @@ public static byte[] encrypt(String content, String password) { try { KeyGenerator kgen = KeyGenerator.getInstance("AES"); - kgen.init(128, new SecureRandom(password.getBytes())); + + SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); + secureRandom.setSeed(password.getBytes()); + kgen.init(128, secureRandom); + SecretKey secretKey = kgen.generateKey(); byte[] enCodeFormat = secretKey.getEncoded(); SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES"); Cipher cipher = Cipher.getInstance("AES");// 创建密码器 - byte[] byteContent = content.getBytes("utf-8"); + byte[] byteContent = content.getBytes(StandardCharsets.UTF_8); cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化 byte[] result = cipher.doFinal(byteContent); return result; // 加密 @@ -41,8 +40,6 @@ } catch (NoSuchPaddingException e) { e.printStackTrace(); } catch (InvalidKeyException e) { - e.printStackTrace(); - } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); @@ -65,9 +62,11 @@ try { String charset = "utf-8"; KeyGenerator kgen = KeyGenerator.getInstance("AES"); - SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG") ; - secureRandom.setSeed(password.getBytes(charset)); + + SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); + secureRandom.setSeed(password.getBytes()); kgen.init(128, secureRandom); + SecretKey secretKey = kgen.generateKey(); byte[] enCodeFormat = secretKey.getEncoded(); SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES"); @@ -83,7 +82,7 @@ e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); - } catch (BadPaddingException | UnsupportedEncodingException e) { + } catch (BadPaddingException e) { e.printStackTrace(); } return null; @@ -95,7 +94,7 @@ * @param buf * @return */ - public static String parseByte2HexStr(byte buf[]) { + public static String parseByte2HexStr(byte[] buf) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < buf.length; i++) { String hex = Integer.toHexString(buf[i] & 0xFF); @@ -120,7 +119,7 @@ for (int i = 0; i < hexStr.length() / 2; i++) { int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16); int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16); - result[i] = (byte) (high * 16 + low); + result[i] = (byte)(high * 16 + low); } return result; } @@ -138,7 +137,7 @@ try { SecretKeySpec key = new SecretKeySpec(password.getBytes(), "AES"); Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding"); - byte[] byteContent = content.getBytes("utf-8"); + byte[] byteContent = content.getBytes(StandardCharsets.UTF_8); cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化 byte[] result = cipher.doFinal(byteContent); return result; // 加密 @@ -147,8 +146,6 @@ } catch (NoSuchPaddingException e) { e.printStackTrace(); } catch (InvalidKeyException e) { - e.printStackTrace(); - } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); @@ -165,13 +162,13 @@ System.out.println("加密前:" + content); byte[] encode = encrypt(content, password); - //传输过程,不转成16进制的字符串,就等着程序崩溃掉吧 + // 传输过程,不转成16进制的字符串,就等着程序崩溃掉吧 String code = parseByte2HexStr(encode); System.out.println("密文字符串:" + code); byte[] decode = parseHexStr2Byte(code); // 解密 byte[] decryptResult = decrypt(decode, password); - System.out.println("解密后:" + new String(decryptResult, "UTF-8")); //不转码会乱码 + System.out.println("解密后:" + new String(decryptResult, StandardCharsets.UTF_8)); // 不转码会乱码 } } -- Gitblit v1.7.1