HMAC 和 SHA256 - 如何使用随机数进行验证
HMAC and SHA256 - how to validate using nonce
我正在尝试与 Web 集成 API。查看他们如何使用 SHA256 和 HMAC 生成签名。然而,他们也使用所谓的 "nonce",我不得不查找它。 api 使用我们都知道的秘密生成 "signature",并结合请求的 url。
那么,我是否使用他们用来在我这边生成签名的相同随机数来进行验证?
我正在查看他们如何在客户端生成签名的示例。
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 具有相同的目的。
我错过了什么?
我从 http://www.freeformatter.com/hmac-generator.html is hex encoded and the value you provided (ihyCCfTHog7TDQYT4tQM5ISYSjEIaChSeJmIo3UMa+U=
) is base64 编码得到的输出。
如果您解码 base64 编码的消息,将其转换为十六进制并将其与 freeformatter 的结果(即 8a1c8209f4c7a20ed30d0613e2d40ce484984a3108682852789988a3750c6be5
)进行比较 - 它们都匹配。您可能对 转换函数感兴趣。
是的:您计算两侧的 HMAC 并比较结果。如果它匹配(没有其他人知道这个秘密)你就安全了。
随机数是一个随机值,以防止重放攻击(参见 https://en.wikipedia.org/wiki/Cryptographic_nonce)。
我正在尝试与 Web 集成 API。查看他们如何使用 SHA256 和 HMAC 生成签名。然而,他们也使用所谓的 "nonce",我不得不查找它。 api 使用我们都知道的秘密生成 "signature",并结合请求的 url。
那么,我是否使用他们用来在我这边生成签名的相同随机数来进行验证?
我正在查看他们如何在客户端生成签名的示例。
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 具有相同的目的。
我错过了什么?
我从 http://www.freeformatter.com/hmac-generator.html is hex encoded and the value you provided (ihyCCfTHog7TDQYT4tQM5ISYSjEIaChSeJmIo3UMa+U=
) is base64 编码得到的输出。
如果您解码 base64 编码的消息,将其转换为十六进制并将其与 freeformatter 的结果(即 8a1c8209f4c7a20ed30d0613e2d40ce484984a3108682852789988a3750c6be5
)进行比较 - 它们都匹配。您可能对 转换函数感兴趣。
是的:您计算两侧的 HMAC 并比较结果。如果它匹配(没有其他人知道这个秘密)你就安全了。
随机数是一个随机值,以防止重放攻击(参见 https://en.wikipedia.org/wiki/Cryptographic_nonce)。