接口安全性控制-----sign签名算法

阅读: 评论:0

接⼝安全性控制-----sign签名算法
签名算法规则:
第⼀步,设所有发送或者接收到的数据为集合M,将集合M内⾮空参数值的参数按照参数名ASCII码从⼩到⼤排序(字典序),使⽤URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
第⼆步,在stringA最后拼接上KEY得到stringSignTemp字符串(即stringSignTemp = stringA + &key=KEY),并对stringSignTemp进⾏MD5运算,再将得到的字符串所有字符转换为⼤写,得到sign值signValue
⽤于签名的密钥KEY值为keysecret
注意事项:
a、参数名ASCII码从⼩到⼤排序(字典序);
b、如果参数的值为空(即null或空字符串)不参与签名;
c、参数名区分⼤⼩写;
d、验证签名时,传送的sign参数不参与签名,将⽣成的签名与该sign值作校验;
e、接⼝可能增加字段,验证签名时必须⽀持增加的扩展字段;
public class Sign {
private static final String KEY = "keysecret";
public static void main(String[] args) {
HashMap<String,String> params = new HashMap<>();
params.put("name", "wang");
params.put("age", "12");
System.out.println(getSign(params));
}
public static String getSign(HashMap<String,String> params) {
/
/利⽤TreeMap进⾏排序
Map<String,String> sortedMap = new TreeMap<String,String>(params);
//获取键值对
Set<Entry<String, String>> entrySet = Set();
//遍历并且拼接
StringBuilder stringA = new StringBuilder();
for (Entry<String, String> entry : entrySet) {
String key = Key();
if(key != null) {
stringA.append(key).append("=").Value()).append("&");
}
}
StringBuilder stringSignTemp = stringA.append(KEY);
System.out.String());
MD5 md5 = new MD5();
String signValue = String()).toUpperCase();
return signValue;
}
}

本文发布于:2023-05-08 18:06:56,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/4/92348.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:签名   参数   字符串   得到   键值   增加
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图