1、签名算法生成步骤
步骤1:设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
重要规则
1.参数名从小到大排序(字典序);
2.如果参数的值为空不参与签名;
3.参数名区分大小写;
步骤2:在stringA最后拼接上AppSecret得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,得到sign值
签名举例:假设我们有以下数据
"timestemp":"20200604140653904"
"deviceno":"ae5a94eb3dbe9baf"
"data":"{"code":"569531"}"
对参数按照key=value的格式,并按照参数名字典序排序如下:
stringA="data={"code":"569531"}&deviceno=ae5a94eb3dbe9baf×tamp=20200604140653904&";
拼接AppSecret:
stringSignTemp=stringA+"key=8aec14f45612458f9685172ade12a7d6" //注:拼接参数key=appsecrte
即
data={"code":"569531"}&deviceno=ae5a94eb3dbe9baf×tamp=20200604140653904&key=ae5a94eb3dbe9baf
sign=MD5(stringSignTemp)="7e951684b52a8a1c4a31b9170dc5d76d" //注:MD5签名方式
为了数据安全,我方对字段“data”进行AES加密处理,然后进行URL编码:
sJ3jgmoptllii1L%2bue4pr%2fhQ7GLtau%2baY1%2fXZ6BT1eY%3d
得到最终发送的数据:
{"deviceno":"ae5a94eb3dbe9baf","data":"sJ3jgmoptllii1L%2bue4pr%2fhQ7GLtau%2baY1%2fXZ6BT1eY%3d","timestamp":"20200604140653904","sign":"7e951684b52a8a1c4a31b9170dc5d76d"}
调用示例:
Request Data:
{
"deviceno":"ae5a94eb3dbe9baf",
"data":"sJ3jgmoptllii1L%2bue4pr%2fhQ7GLtau%2baY1%2fXZ6BT1eY%3d", //data数据加密并URL编码处理,详情请看AES签名
"timestamp":"20200604140653904"
"sign":"7e951684b52a8a1c4a31b9170dc5d76d"// 先生成签名,再进行data数据AES加密
}
Response Body:
{
"resultcode": "1", // 成功为1,失败为0
"appid": "pm65b0195c12225a37",
"data": "", // data数据加密处理,详情请看AES加密
"msg": "创建成功"
}
作者:ppt 创建时间:2024-10-29 19:16
最后编辑:ppt 更新时间:2024-10-30 10:52
最后编辑:ppt 更新时间:2024-10-30 10:52