代码语言:txt复制
/**
* 生成接口sign
* 将获得的signStr进行md5加密候转化成大写,再拼接密钥,再md5加密,并且转化为大写
* 签名生成的通用步骤如下:
*
* 第一步,设所有发送的数据非空参数值的参数按照参数名ASCII码从小到大排序(字典序),
* 使用URL键值对的格式(即key1:value1key2:value2…)拼接成字符串signStr。
*
* 第二步,将获得的signStr进行md5加密候转化成大写,再拼接密钥,再md5加密,并且转化为大写
*
* 第三步,第二步结果就是最终的签名signStr
*
* 特别注意以下重要规则:
*
* ◆ 参数名ASCII码从小到大排序(字典序);
* ◆ 如果参数的值为空不参与签名;
* ◆ 参数名区分大小写;
* (((注意:不同环境后端框架md5结果不一样为,32/16位大小写,此处得前后端对应
* https://www.sojson.com/md5/ 来猜是具体32/16位大小写 哪一种加密
* 以下结果是 32位小写 md5加密的结果)))
* 将获得的signStr进行md5加密候转化成大写,再拼接密钥,再md5加密,并且转化为大写,
* 密钥与后端商定
* 假设传送的参数如下:
*
* timestamp: 1651226218
* nonce: cpNrX8wVBOhnIPTs
* id: 1
* name: zhang欧文
* uuid: ffffffff-9252-a533-ffff-ffff81eff5b0
* os_type: 3
* 第一步:
* signStr="id1namezhang欧文noncecpNrX8wVBOhnIPTsos_type3timestamp1651226218uuidffffffff-9252-a533-ffff-ffff81eff5b0"
* 第二步:
* strtoupper(md5(strtoupper(md5(signStr)).密钥));
* 第三步:
* signStr=69AE2F1DDBE6D78699A087EE62F8FE63
*
* @return string signStr
*/