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


目录
相关文章
|
2月前
|
算法 测试技术 C#
【字典树】【字符串】【 前缀】100268. 最长公共后缀查询
【字典树】【字符串】【 前缀】100268. 最长公共后缀查询
|
7月前
|
存储 算法 安全
使用MD5当做文件的唯一标识,这样安全么?
MD5常用于文件完整性验证。通过对文件进行MD5哈希计算,可以生成唯一的哈希值,用于识别文件的内容是否发生改变。这在文件传输和数据备份中特别有用。 MD5也经常被用于密码存储,将用户密码经过MD5哈希后存储,而不是直接保存明文密码,以增加安全性。
726 0
使用MD5当做文件的唯一标识,这样安全么?
|
2月前
Qt 计算字符串和文件的md5 值
Qt 计算字符串和文件的md5 值
83 0
|
数据安全/隐私保护
请求参数按照ASCII码从小到大排序后追加秘钥再进行加密得到签名值
请求参数按照ASCII码从小到大排序后追加秘钥再进行加密得到签名值
382 0
|
12月前
|
PHP
php公用函数:生成随机数字大小写字母的N位随机字符串
php公用函数:生成随机数字大小写字母的N位随机字符串
60 0
.NET中将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
.NET中将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
276 0
|
数据安全/隐私保护
参数排序,生成md5的sign
参数排序,生成md5的sign
145 0
最长公共字符串后缀
最长公共字符串后缀
176 0
|
算法 Java Maven
DES加解密算法:含DES密钥生成、参数名ASCII码从小到大排序
DES加解密算法:含DES密钥生成、参数名ASCII码从小到大排序
357 0
DES加解密算法:含DES密钥生成、参数名ASCII码从小到大排序
|
PHP
PHP面试题:对于用户输入一串字符串$string,要求$string中只能包含大于0的数字和英文逗号,请用正则 表达式验证,对于不符合要求的$string返回出错信息
PHP面试题:对于用户输入一串字符串$string,要求$string中只能包含大于0的数字和英文逗号,请用正则 表达式验证,对于不符合要求的$string返回出错信息
129 0