From 19464eb021cfa547dfbfba45a9c896837f7d0d98 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 18 七月 2024 15:35:15 +0800 Subject: [PATCH] 修改密码,登录接口增加密码解密逻辑(前端传递的密码加密传输);枚举和枚举项:查询、增加、修改、删除接口上传。 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/DigestUtil.java | 40 +++++++++++++++++++++++++++++++++++----- 1 files changed, 35 insertions(+), 5 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/DigestUtil.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/DigestUtil.java index 5daa93e..929ee15 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/DigestUtil.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/util/DigestUtil.java @@ -1,14 +1,18 @@ package com.vci.web.util; +import com.vci.corba.common.PLException; +import com.vci.starter.web.exception.VciBaseException; +import org.apache.commons.codec.binary.Hex; import org.springframework.lang.Nullable; import org.springframework.util.DigestUtils; -import javax.crypto.Mac; -import javax.crypto.SecretKey; +import javax.crypto.*; +import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; -import java.security.InvalidKeyException; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; +import java.security.*; +import java.security.spec.InvalidKeySpecException; +import java.security.spec.PKCS8EncodedKeySpec; +import java.util.Base64; /** * 鍔犲瘑鐩稿叧宸ュ叿绫荤洿鎺ヤ娇鐢⊿pring util灏佽锛屽噺灏慾ar渚濊禆 @@ -327,6 +331,32 @@ } /** + * aes瑙e瘑 + * @param secretKey 绉橀挜 + * @param encryptedData Data + * @return digest as a hex string + */ + public static String decryptAes(String encryptedData, String secretKey) throws Exception { + // AES 瀵嗛挜闀垮害闇�瑕佹槸 128, 192, 鎴� 256 浣嶏紙16, 24, 鎴� 32 瀛楄妭锛� + byte[] keyBytes = secretKey.getBytes("UTF-8"); + SecretKeySpec key = new SecretKeySpec(keyBytes, "AES"); + + // 鍒濆鍖栧悜閲� IV 涔熼渶瑕佹槸 128 浣嶏紙16 瀛楄妭锛� + byte[] ivBytes = secretKey.substring(0, 16).getBytes("UTF-8"); + IvParameterSpec iv = new IvParameterSpec(ivBytes); + + // 瑙e瘑 + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); + cipher.init(Cipher.DECRYPT_MODE, key, iv); + + // 瑙e瘑鐨勬暟鎹渶瑕佹槸 Base64 缂栫爜鐨勶紝鍥犱负 JavaScript 鐨� CryptoJS 榛樿杩斿洖 Base64 缂栫爜鐨勫瓧绗︿覆 + byte[] decodedValue = Base64.getDecoder().decode(encryptedData); + byte[] decryptedBytes = cipher.doFinal(decodedValue); + + return new String(decryptedBytes, "UTF-8"); + } + + /** * digest HMac * * @param algorithm 绠楁硶 -- Gitblit v1.9.3