接口合法性验证SIGN及测试接口

2020-08-29  本文已影响0人  沙蒿同学

对外的api接口往往需要进行请求合法性安全性校验,最简单的就是sign,简单的请求参数拼接加key然后进行md5。以下接口均已测试通过

加密规则

将请求的所有参数进行排序(正序)后按照key1=value1&key2=value2依次拼接后,添加key进行md5加密,得到sign放置请求url中。
请求url拼接参数必须包含timestamp时间戳(秒)和sign签名参数,这里我们使用key为shahao

示例

http://127.0.0.1/test,请求方式为post,参数为

{
    "aStr":"1234",
    "bStr":"aaaa",
    "zInt":12
}

加密:md5(aStr=1234&bStr=aaa&timestamp=1598321920&zInt=12&key=shahao)
结果为:4ded2765408821950519318a329d03e7

最后请求url为http://127.0.0.1/test?sign=4ded2765408821950519318a329d03e7&timestamp=1598321920

{
    "aStr":"1234",
    "bStr":"aaaa",
    "zInt":12
}

程序逻辑需要对时间戳进行校验,根据业务来确定过期时间。

测试接口

1、设置你的key和过期时间接口

参数名 是否必须 类型 说明
key string 加密APPSecretKey,小于50
expire int64 sign有效时长,秒
{
    "key":"shahaohaoshuai",
    "expire":7
}
## 成功
{
    "code": 0,
    "data": true,
    "msg": "success."
}

2、通过参数获取加密后的sign

## 成功
{
    "code": 0,
    "data": {
        "sign": "8ccce62056608dd91fbf50999371fe59",
        "timestamp": "1598705745"
    },
    "msg": "success."
}

3、测试接口

{
    "string":121313,
    "int":"21221"
}
## 成功
{
    "code": 0,
    "data": true,
    "msg": "success."
}
上一篇 下一篇

猜你喜欢

热点阅读