前端 sign参数验签

tech2023-06-19  103

签名生成的通用步骤如下: 第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。 特别注意以下重要规则:

◆ 参数名ASCII码从小到大排序(字典序);◆ 如果参数的值为空不参与签名;◆ 参数名区分大小写;◆ 接口可能增加字段,验证签名时必须支持增加的扩展字段 第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。 <script> // const md5 = require('./md5.min.js'); let obj = { name:'张三', age:18, sex:'男', id:'' } let sign = '&key=192006250b4c09247ec02edce69f6a2d' function asciiSort(data,sign=''){ let keys = Object.keys(data) keys.sort() let str = '' keys.forEach(el => { if (data[el] || data[el] === 0) { str += el + '=' + data[el] + '&' } }) str = str.substr(0,str.length-1); str = str + sign str = md5(str).toUpperCase(); return str } let str = asciiSort(obj,sign) console.log(str); </script>
最新回复(0)