php 生成签名规则

2023-12-05 15:30:31 浏览数 (1)

代码语言: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
     */
php

0 人点赞