HMAC 生成器
用消息和密钥计算 HMAC 签名,输出十六进制或 base64,并可与收到的签名比对。
仅在浏览器中处理免费使用
与收到的签名比对
文件在浏览器本地处理,不会上传到服务器。
使用方法
无需注册、无需安装,也没有使用次数限制,完全免费。
粘贴消息和密钥、选好哈希,签名就会出现。把收到的签名填进下面的框,工具会告诉你两者是否一致。
这就是 webhook 验签背后的计算。Stripe、GitHub 以及多数支付服务商都会用共享密钥对请求体签名并放进请求头,接收方重新算一遍,对不上就拒绝。
它和普通哈希不一样。任何人都能算出被改过的请求体的 SHA-256,再把新哈希一起发过来。HMAC 只有持有密钥的一方才能生成,这才使它成为来源的凭证。
密钥常常以十六进制或 base64 而非文本的形式下发,所以密钥的编码是单独的选项。把十六进制密钥当文本读会得到完全不同的签名——这是代码看起来没问题却验签失败的常见原因。
比对始终会扫完整个字符串。一遇到不同就返回,会让耗时暴露前面对了几个字符,攻击者据此能一个字一个字地推出签名。服务端也应当用同样的方式比对。
提供 SHA-1 只是因为还有旧系统要求它,新做的东西不要选它。
粘贴的内容不会上传到服务器,签名用浏览器的 Web Crypto 在本地计算。