From 2fcd97552d16718cc7997629fd637a73a5a4483f Mon Sep 17 00:00:00 2001 From: 郑永安 <zyazyz250@sina.com> Date: 星期一, 19 六月 2023 14:44:19 +0800 Subject: [PATCH] 删除 --- src/main/java/com/gk/firework/Domain/Utils/SignUtils.java | 69 ++++++++++++++++++++++++++++++++++ 1 files changed, 69 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gk/firework/Domain/Utils/SignUtils.java b/src/main/java/com/gk/firework/Domain/Utils/SignUtils.java new file mode 100644 index 0000000..afd8397 --- /dev/null +++ b/src/main/java/com/gk/firework/Domain/Utils/SignUtils.java @@ -0,0 +1,69 @@ +package com.gk.firework.Domain.Utils; + +import java.util.Map; +import java.util.Random; +import java.util.TreeMap; + +import static com.gk.firework.Domain.Utils.StringUtils.MD5Encoder; + + +public class SignUtils { + + public static String getTimestamp() { + //生成时间戳 + + long timestampLong =System.currentTimeMillis(); + + String timestampStr = String.valueOf(timestampLong); + + return timestampStr; + } + + public static String getNonceStr(int length){ + + //生成随机字符串 + + String str="zxcvbnmlkjhgfdsaqwertyuiopQWERTYUIOPASDFGHJKLZXCVBNM1234567890"; + + Random random=new Random(); + + StringBuffer randomStr=new StringBuffer(); + + // 设置生成字符串的长度,用于循环 + + for(int i=0; i<length; ++i){ + //从62个的数字或字母中选择 + + int number=random.nextInt(62); + + //将产生的数字通过length次承载到sb中 + + randomStr.append(str.charAt(number)); + } + + //将承载的字符转换成字符串 + + return randomStr.toString(); + } + + //类似微信接口的签名生成方法 + public static String createSign(Map<String, String> params, String privateKey){ + StringBuilder sb = new StringBuilder(); + // 将参数以参数名的字典升序排序 + Map<String, String> sortParams = new TreeMap<String, String>(params); + // 遍历排序的字典,并拼接"key=value"格式 + for (Map.Entry<String, String> entry : sortParams.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue().trim(); + if (!StringUtils.isEmpty(value)) + sb.append("&").append(key).append("=").append(value); + } + String stringA = sb.toString().replaceFirst("&",""); + String stringSignTemp = stringA + "&"+"appkey="+privateKey; + //将签名使用MD5加密并全部字母变为大写 + String signValue = MD5Encoder(stringSignTemp,"utf-8").toUpperCase(); + System.out.println("stringA+privateKey后MD5加密+转换全部大写生成sign为: "+signValue); + return signValue; + } + +} -- Gitblit v1.9.2