安全规范
1、签名算法
签名校验工具(暂无)示例参数:
{
"ChannelKey": "web",
"Method": "Member.SearchMembers",
"BizContent": "{\"Name\":\"xiaoA\",\"Mobile\":\"13111111111\",\"CardNo\":\"\"}",
"Sign": "A85301F9F379128B8B5184F6DFCFE03C",
"SignType": "MD5",
"Format": "json",
"Charset": "utf-8",
"Version": "1.0",
"Timestamp": "2017-01-01 14:12:13"
}
根据以上参数生成签名的步骤如下:
第一步,将上面的参数数据(Sign除外)按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串如示:
"BizContent={\"Name\":\"xiaoA\",\"Mobile\":\"13111111111\",\"CardNo\":\"\"}&ChannelKey=web&Charset=utf-8&Format=json&Method=Member.SearchMembers&SignType=MD5&Timestamp=2017-02-12 14:12:13&Version=1.0"
特别注意以下重要规则:
● 拼接成的字符串不能包含Sign;
● 空值参数仍然参与签名计算;
第二步,在第一步生成的字符串最后加上ChannelKey对应的AppKey,假如ChannelKey对应的AppKey是aaaaaaaaaa,则最终加密前的字符串如下:
"BizContent={\"Name\":\"xiaoA\",\"Mobile\":\"13111111111\",\"CardNo\":\"\"}&ChannelKey=web&Charset=utf-8&Format=json&Method=Member.SearchMembers&SignType=MD5&Timestamp=2017-02-12 14:12:13&Version=1.0aaaaaaaaaa"
注:ChannelKey和AppKey,请联系对接支持人员获取。
第三步,对第二步的字符串执行参数中SignType指定的加密方式加密,得到加密字符串。
第四步,将第三步中的加密字符串全部转换为大写并赋值给参数中的Sign。