一.背景
为了增加接口的安全性(防止中间人攻击),现增加签名算法。此算法参考微信支付中的签名算法,由于该签名针对前后端,采用了对称算法,如后续接口供给多家第三方接口使用可采用非对称算法。大致整理文档供后续开发人员使用阅读。
二. 签名生成步骤
①设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
注意如下规则:
◆参数名ASCII码从小到大排序(字典序);
◆如果参数的值为空不参与签名;
◆参数名区分大小写;
◆验证调用返回或主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
②在stringA最后拼接上key(密钥)得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。