【转】js生成接口请求参数签名加密

您所在的位置:网站首页 js签字 【转】js生成接口请求参数签名加密

【转】js生成接口请求参数签名加密

2023-09-24 06:10| 来源: 网络整理| 查看: 265

js生成接口请求参数签名加密

签名算法规则:

第一步,设所有发送或者接收到的数据为集合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、接口可能增加字段,验证签名时必须支持增加的扩展字段;

 

将所有参数字段按首字母排序, 拼接成key1 = value1 & key2 = value2的格式,再在末尾拼接上key = appSecret, 再做MD5加密生成sign,方法如下:

functiongetSign(params, kAppKey, kAppSecret) { if (typeof params == "string") { return paramsStrSort(params); } else if (typeof params == "object") { var arr = []; for (var i in params) { arr.push((i + "=" + params[i])); } return paramsStrSort(arr.join(("&"))); } } functionparamsStrSort(paramsStr) { var url = paramsStr + "&appKey=" + kAppKey; var urlStr = url.split("&").sort().join("&"); var newUrl = urlStr + '&key=' + kAppSecret; return md5(newUrl); }

调用:

var params = "xid=" + xid + "&type=" + type + "&pageSize=" + pageSize + "&pageNo=" + pageNo; var sign = getSign(params, kAppKey, kAppSecret);

或:

var paramsObj = { xid: xid, pageSize: pageSize, type: type, pageNo: pageNo }; var sign = getSign(paramsObj, kAppKey, kAppSecret);

kAppKey,kAppSecret为常量,一般由后端定义好!签名加密方法依托MD5!

GitHub地址

也可以使用 js-md5、crypto 进行md5加密

 

转自:https://www.cnblogs.com/jone-chen/p/8143285.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3