Skip to content

签名验签

任霏 edited this page Mar 16, 2020 · 1 revision

为了防止请求被中间人篡改,接口和客户端都应签名和验签

签名

在发送请求需要认证的接口时,将“时间戳(timestamp)、随机字符串(nonce)、令牌(Authorization)“三个参数进行字典排序成一个新的字符串,然后进行SHA1计算,成为签名字段signature,如果时间戳和服务器上的时间相差过大,请求将不被执行。

验签

服务器的响应请求中包含“时间戳(timestamp)、随机字符串(nonce)“两个参数,将两个参数进行字典排序成一个新的字符串,然后进行SHA1计算,结果如果与signature签名字段一致,则为可信。 服务器响应案例:

{
    "code": 200,
    "message": "Success",
    "timestamp": 1584326254,
    "signature": "c3697c4c8639219b5602ca926c5af44eb60d8bf9",
    "nonce": "zPIC9ugw1a4SyUSd",
    "data": null
}
Clone this wiki locally