From c9a036da723b08fc34ecc90c0668348f01e01458 Mon Sep 17 00:00:00 2001
From: zhangtiansen <1292933220@qq.com>
Date: 星期二, 06 九月 2022 17:50:35 +0800
Subject: [PATCH] 三说会堂专家,事件类型,业务中心模块搭建,基本接口创建。
---
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