接口签名:参数名按ASCII码从小到大排序+Key+MD5+转大写签名

简介: 接口签名:参数名按ASCII码从小到大排序+Key+MD5+转大写签名
/*** sign 签名 (参数名按ASCII码从小到大排序(字典序)+key+MD5+转大写签名)* key 由供应商提供* @return*/publicstaticStringgetSign(Mapmap, StringappSecret) throwsNoSuchAlgorithmException {
StringBuffersignOri=newStringBuffer();
// entrySet 所有参与传参的参数按照accsii排序(升序)Setset=map.entrySet();
Iteratorit=set .iterator();
while (it.hasNext()) {
Map.Entryentry= (Map.Entry) it.next();
Stringk= (String) entry.getKey();
Objectv=entry.getValue();
//空值不传递,不参与签名组串if (null!=v&&!"".equals(v)) {
signOri.append(k+"="+v+"&");
            }
        }
signOri=signOri.append("appSecret="+appSecret);
System.out.println(signOri);
//MD5加密,结果转换为大写字符Stringsign=encodeByMD5(signOri.toString()).toUpperCase();
returnsign;
    }
publicstaticStringencodeByMD5(Stringstr) throwsNoSuchAlgorithmException {
MessageDigestmd=MessageDigest.getInstance("MD5");
// 计算消息的摘要byte[] digest=md.digest(str.getBytes());
// 将摘要转换为十六进制字符串StringhexString=bytesToHex(digest);
returnhexString;
    }
publicstaticStringbytesToHex(byte[] bytes) {
StringBuilderhexString=newStringBuilder();
for (byteb : bytes) {
Stringhex=Integer.toHexString(0xff&b);
if (hex.length() ==1) {
hexString.append('0');
            }
hexString.append(hex);
        }
returnhexString.toString();
    }


目录
相关文章
|
5月前
|
C++
串应用- 计算一个串的最长的真前后缀
这篇文章提供了一个C++程序,用于找出给定字符串的最长真前后缀,并展示了如何通过计算每个子串的最长相同前后缀来实现这一功能。
|
8月前
leetcode-1784:检查二进制字符串字段
leetcode-1784:检查二进制字符串字段
40 0
|
数据安全/隐私保护
请求参数按照ASCII码从小到大排序后追加秘钥再进行加密得到签名值
请求参数按照ASCII码从小到大排序后追加秘钥再进行加密得到签名值
477 0
字符对应的URL编码值集合
字符对应的URL编码值集合
65 0
|
PHP
php公用函数:生成随机数字大小写字母的N位随机字符串
php公用函数:生成随机数字大小写字母的N位随机字符串
87 0
|
数据安全/隐私保护 索引
labview字符串数据长度连接子字符串大小写替换删除插入日期匹配
labview字符串数据长度连接子字符串大小写替换删除插入日期匹配
276 0
|
算法
【Day20】LeetCode算法题【1784. 检查二进制字符串字段】【14. 最长公共前缀】
了解LeetCode算法题【1784. 检查二进制字符串字段】。
124 0
【Day20】LeetCode算法题【1784. 检查二进制字符串字段】【14. 最长公共前缀】
.NET中将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
.NET中将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
369 0
|
数据安全/隐私保护
参数排序,生成md5的sign
参数排序,生成md5的sign
189 0
|
算法 Java Maven
DES加解密算法:含DES密钥生成、参数名ASCII码从小到大排序
DES加解密算法:含DES密钥生成、参数名ASCII码从小到大排序
401 0
DES加解密算法:含DES密钥生成、参数名ASCII码从小到大排序