From c4e89bcdac3137933dff5f3ff8207e16acfac71e Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Sat, 7 Dec 2024 16:18:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/SignatureUtil.java | 71 --------------------------- src/main/java/SignatureValidator.java | 28 ----------- 2 files changed, 99 deletions(-) delete mode 100644 src/main/java/SignatureUtil.java delete mode 100644 src/main/java/SignatureValidator.java diff --git a/src/main/java/SignatureUtil.java b/src/main/java/SignatureUtil.java deleted file mode 100644 index eb7ef45..0000000 --- a/src/main/java/SignatureUtil.java +++ /dev/null @@ -1,71 +0,0 @@ -import java.io.UnsupportedEncodingException; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.util.Map; -import java.util.TreeMap; - -/** - * @description: 生成签名 - * @author: dimengzhe - * @date: 2024/11/28 - **/ -public class SignatureUtil { - - - /** - * 生成请求签名 - * - * @param parameters 请求参数 - * @param appKey 应用的 AppKey - * @param secret 密钥 - * @return 签名 - */ - public static String generateSignature(Map parameters, String appKey, String secret) throws UnsupportedEncodingException, NoSuchAlgorithmException { - // 1. 使用 TreeMap 按照字典顺序对参数进行排序 - Map sortedParams = new TreeMap<>(parameters); - sortedParams.put("_app", appKey); // 添加应用的 AppKey - sortedParams.put("_t", String.valueOf(System.currentTimeMillis())); // 添加时间戳 - - // 2. 拼接参数字符串 - String content = joinParameters(sortedParams); - - // 3. 将密钥加在参数字符串的前后 - content = secret + content + secret; - - // 4. 计算签名 (MD5) - return md5(content); - } - - /** - * 拼接参数字符串 - * - * @param parameters 排序后的参数 - * @return 拼接后的参数字符串 - */ - private static String joinParameters(Map parameters) throws UnsupportedEncodingException { - StringBuilder builder = new StringBuilder(); - for (Map.Entry entry : parameters.entrySet()) { - if (builder.length() > 0) { - builder.append("&"); - } - builder.append(entry.getKey()).append("=").append(entry.getValue()); - } - return builder.toString(); - } - - /** - * 计算 MD5 - * - * @param content 要计算 MD5 的字符串 - * @return MD5 值 - */ - private static String md5(String content) throws NoSuchAlgorithmException { - MessageDigest md = MessageDigest.getInstance("MD5"); - byte[] bytes = md.digest(content.getBytes()); - StringBuilder sb = new StringBuilder(); - for (byte b : bytes) { - sb.append(String.format("%02x", b)); - } - return sb.toString(); - } -} diff --git a/src/main/java/SignatureValidator.java b/src/main/java/SignatureValidator.java deleted file mode 100644 index 43a2052..0000000 --- a/src/main/java/SignatureValidator.java +++ /dev/null @@ -1,28 +0,0 @@ -import java.io.UnsupportedEncodingException; -import java.security.NoSuchAlgorithmException; -import java.util.Map; - -/** - * @description: 验证签名方法 - * @author: dimengzhe - * @date: 2024/11/28 - **/ -public class SignatureValidator { - - /** - * 验证签名是否正确 - * - * @param parameters 请求参数 - * @param appKey 应用的 AppKey - * @param secret 密钥 - * @param receivedSignature 请求中的签名 - * @return 是否验证通过 - */ - public static boolean validateSignature(Map parameters, String appKey, String secret, String receivedSignature) throws UnsupportedEncodingException, NoSuchAlgorithmException { - // 1. 重新生成签名 - String calculatedSignature = SignatureUtil.generateSignature(parameters, appKey, secret); - - // 2. 比较计算出来的签名和请求中的签名 - return calculatedSignature.equals(receivedSignature); - } -}