0

HMAC 生成器和验证器

使用密钥完全在浏览器中使用 SHA-256、SHA-384、SHA-512 或 SHA-1 生成并验证 HMAC 消息身份验证代码。

Buy Me a Coffee at ko-fi.com
处理中... 0%
导入密钥
计算HMAC
完成

结果

HMAC(基于哈希的消息验证代码)是一种密钥加密结构,它通过 SHA-256 等哈希函数将密钥与消息结合起来。与任何人都可以单独从消息中重新计算的普通哈希不同,HMAC 只能由持有相同密钥的人复制 - 这就是它成为身份验证码而不仅仅是校验和的原因。

这是与普通摘要的根本区别:我们自己的哈希生成器工具计算未加密的哈希值,例如 MD5 或 SHA-256,这对于检测意外损坏非常有用,但无法证明谁生成了数据,因为任何人都可以生成相同的哈希值。 HMAC 证明完整性(消息未被更改)和真实性(签名者知道共享密钥),这就是为什么 HMAC 是 API 请求签名、JWT 的 HS256/HS384/HS512 算法和 TLS 记录身份验证背后的标准构建块。

最常见的现实用例是验证 Webhook 签名。 Stripe、GitHub 和 Shopify 等服务使用您配置的密钥通过 HMAC-SHA256 对每个 Webhook 负载进行签名,并在请求标头中发送生成的签名。您的服务器应该使用相同的密钥在原始有效负载上重新计算 HMAC,并将其与标头值进行比较 - 如果它们匹配,您就知道该请求确实来自该服务并且在传输过程中没有被篡改。该工具的验证模式准确地再现了该检查:粘贴有效负载、共享密钥和接收到的签名,并获得即时匹配或不匹配。

一切都通过浏览器的本机 Web Crypto API(crypto.subtle.importKey 和 crypto.subtle.sign)在本地运行,因此密钥、消息正文和生成的签名永远不会离开您的计算机 - 不会将任何内容上传到任何服务器,这一点很重要,因为 HMAC 机密正是您永远不应该粘贴到可以记录它的随机在线工具中的值。