【发布时间】:2017-11-16 15:40:51
【问题描述】:
我正在尝试与 Web API 集成。看看他们如何使用 SHA256 和 HMAC 来生成他们的签名。然而,他们也使用所谓的“nonce”,我必须查一下。这个 api 使用我们都知道的秘密和请求的 url 生成“签名”。
那么,我是否使用他们用来在我端生成签名的相同 nonce 来进行验证?
我正在查看他们如何在客户端生成这样的签名的示例。
var message = "https://my.server.com/new-callback?reqID=test&nonce=8cf95201-4d3c-4397-9117-d7ee6ad89d93";
var secret = "g394g732vhsdfiv34";
var hash = CryptoJS.HmacSHA256(message, secret);
var signature = hash.toString(CryptoJS.enc.Base64);
result of signature...
// ihyCCfTHog7TDQYT4tQM5ISYSjEIaChSeJmIo3UMa+U=
但是,我使用这个工具并没有得到相同的结果
http://www.freeformatter.com/hmac-generator.html
因此,要在我端(在 api 中)验证这一点,我需要使用相同的输入来计算签名,然后简单地比较结果字符串,对吗?
这个“nonce”组件有什么用途?从我读到的内容来看,它或多或少与 GUID 的用途相同。
我错过了什么?
【问题讨论】:
标签: javascript sha256 hmac