在对外发布的接口中,基本上都会涉及到对接口字段进行签名加密,以防篡改。签名基本也都类似,比如:
1、请求字段先进行排序,拼接成字符串
2、再对字符串进行MD5加密,然后进行base64编码,生成签名。
3、请求字段中,带上这个签名去请求,服务器校验签名一致,则通过
//排序和拼接字符函数
sort= function sort(jsonObj) {
let arr = [];
for (var key in jsonObj) {
if (key != "signature") //signature 一般不参与签名,用来传递签名后的字符串
arr.push(key)
}
arr.sort(); //按正序排序,
let str = '';
for (var i in arr) {
if (jsonObj[arr[i]] instanceof Object)
str_temp= JSON.stringify(jsonObj[arr[i]])
else
str_temp= jsonObj[arr[i]]
str += arr[i] + "=" +encodeURIComponent(toUnicode(str_temp)). replace("%20","+")+ "&"