接口签名:参数名按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();
    }


目录
相关文章
|
3月前
|
Java 测试技术 API
如何检查字符串是否仅包含数字
【8月更文挑战第22天】
189 0
|
5月前
|
JavaScript 前端开发
怎么使用join将数组转为逗号分隔的字符串
怎么使用join将数组转为逗号分隔的字符串
41 0
|
11月前
|
存储 算法 安全
使用MD5当做文件的唯一标识,这样安全么?
MD5常用于文件完整性验证。通过对文件进行MD5哈希计算,可以生成唯一的哈希值,用于识别文件的内容是否发生改变。这在文件传输和数据备份中特别有用。 MD5也经常被用于密码存储,将用户密码经过MD5哈希后存储,而不是直接保存明文密码,以增加安全性。
1509 0
使用MD5当做文件的唯一标识,这样安全么?
|
6月前
Qt 计算字符串和文件的md5 值
Qt 计算字符串和文件的md5 值
134 0
|
数据安全/隐私保护
请求参数按照ASCII码从小到大排序后追加秘钥再进行加密得到签名值
请求参数按照ASCII码从小到大排序后追加秘钥再进行加密得到签名值
442 0
字符对应的URL编码值集合
字符对应的URL编码值集合
56 0
|
PHP
php公用函数:生成随机数字大小写字母的N位随机字符串
php公用函数:生成随机数字大小写字母的N位随机字符串
75 0
lodash检查字符串string是否以给定的字符串结尾
lodash检查字符串string是否以给定的字符串结尾
180 0
有一个长度是10的数组,数组内有10个人名,要求去掉重复的人名,并输出
有一个长度是10的数组,数组内有10个人名,要求去掉重复的人名,并输出
314 0
.NET中将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
.NET中将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
344 0