美文网首页
参数签名(appKey、appSecret、sign)

参数签名(appKey、appSecret、sign)

作者: 意大利大炮 | 来源:发表于2022-11-03 16:00 被阅读0次

    为什么要参数签名

    • 保证接口的数据不会被篡改和重复调用

    原理

    • 调用端对参数进行加密,服务端也对参数后加密后与调用端加密结果对比
    • 加密算法:两端约定好加密算法,加密算法需加盐,通过参数排序、拼接秘钥、MD5等方式进行加密
    • 秘钥对:服务端对每个调用端生成appKey和appSecret,appSecret为隐秘信息,调用端本地存储。

    调用端

    • 预先获取:appKey、appSecret
    • 调用:
      传参appKey、timestamp(毫秒时间戳,5秒过期, 防止dos攻击)、业务参数、签名
      签名算法
      1. 对参数按照ASCII码表进行排序,得到结果:num: 10, nickName: 小泡芙, username:张三
      2. 拼接排序后的字段进行拼接,得到结果:s1 = num10nickName小泡芙username张三
      3. 在拼接好的字符串后加上appSecret,得到结果:s2 = secret + s1 + secret
      4. 最后使用md5算法:md5(s2)
      请求参数示例, 注意:没有传appSecret
    {
                "nickName": "小泡芙",
                "username": "张三",
                "num": 10,
                "appKey": "App-3782917398173123-32223",
                "timestamp": "2022-10-14 15:53:23",
                "sign": "ajhkd123dh8902381273823"
            }
    
    • 流程图


      image.png

    接收端

    • 接收参数:
    • 验签:
      1. 校验时间戳(防止抓取数据后恶意高频访问),判断时间戳是否过期
      2. 校验appSecret:获取appSecret,判断是否过期
      3. 校验签名:走签名算法生成签名(需要把签名先从参数表移出来),与接收签名对比。
    • 流程图:


      image.png

    相关文章

      网友评论

          本文标题:参数签名(appKey、appSecret、sign)

          本文链接:https://www.haomeiwen.com/subject/hcqutdtx.html