当使用 HMAC 对 API 调用进行身份验证时,要散列的消息通常包含很多似乎没有添加任何内容的内容。例如,以下是为 API 生成签名的步骤:
hmacsha1(HTTP VERB + URI + JSON_REQUEST_CONTENT + DATETIME, "secret")
为什么不只是这样:
hmacsha1(JSON_REQUEST_CONTENT, "secret")
这是假设 JSON_REQUEST_CONTENT 是一个包含所有相关请求信息的 JSON 字符串。
在我看来,添加 HTTP VERB 和 URI(或任何额外的非特定于内容的信息)只是增加了消息的长度,我不明白它的好处。
谢谢!