实用工具

HMAC 签名计算

用共享密钥给消息签名——密钥不会离开你的浏览器。

浏览器本地运行哈希与加密1.6万
免费

输入

0 B20.0 KB 以内免费

结果

结果会显示在这里。

Webhook 服务方用 HMAC 给请求签名,而排查验签失败最快的办法,就是手动把期望的签名算出来对一遍。填入完全一致的载荷和共享密钥,然后比较。因为整个过程在页面里完成,密钥不会被传输,密钥和签名也都不会写进你的历史记录。

它是怎么工作的

  • 密钥和消息由页面内的 WebCrypto 处理,不会发送到任何地方。
  • 输出为十六进制或 Base64,这是 Webhook 服务方使用的两种编码。
  • 这次运行的任何信息都不会被保存,连你自己的历史里也没有,因为输入本身就是机密。

你的数据去了哪里

哪也没去。本工具完全在你的浏览器里运行:你粘贴的文本由页面处理,不会传输到任何服务器,也不会写进任何日志。

本工具会接触密钥和凭证,因此任何一次运行都不会被保存,连你自己的历史里也不会有。

它要花多少

单次 20.0 KB 以内免费,无需账号。超出部分每次运行消耗 2 积分,并保存到你的历史记录。

积分来自注册、每日签到、发表评论和完善资料。

了解积分规则

常见问题

我的签名和服务方对不上,问题出在哪?
十次里有九次是消息的字节不一致。请对收到的原始请求体签名——在做 JSON 解析再序列化之前,因为那会重排键顺序并改变空白。同时确认服务方是否在前面拼了时间戳或版本号。
HMAC 和直接做哈希有什么区别?
把密钥和消息拼起来做哈希,攻击者不需要知道密钥就可能做长度扩展攻击。HMAC 的嵌套结构就是为了抵抗这一点,所以所有签名规范用的都是它而不是拼接。
把生产环境的密钥粘贴到这里安全吗?
计算在本地完成,不传输也不存储。话虽如此,一个已经被粘贴进共享机器浏览器里的密钥,值得轮换一次。

背后的开源项目

本工具是独立实现,并未打包第三方库。brix/crypto-js(MIT)在代码层面做的是同一件事——如果你需要在自己的程序里实现它,从那里开始,而不是调用一个网页。

brix/crypto-js

也常被称作

  • hmac在线计算
  • hmac sha256
  • webhook签名验证
  • 接口签名生成
  • hmac工具