分类: 开发工具
HMAC 生成器
用共享密钥给消息签名
输入消息和密钥,一次得到 SHA-1、SHA-256、SHA-384、SHA-512 的 HMAC,可选十六进制或 Base64 输出。密钥不会离开你的浏览器。
HMAC-SHA1
结果将显示在这里。
HMAC-SHA256
结果将显示在这里。
HMAC-SHA384
结果将显示在这里。
HMAC-SHA512
结果将显示在这里。
密钥和消息都留在本页面。不上传、不保存、不记录。
本页的所有处理都在浏览器中完成,不会上传任何内容。
这个工具能做什么
HMAC 用来证明消息出自持有共享密钥的一方,并且中途没被改动:Webhook 服务商用它给回调体签名,API 网关要求每次请求都带上它,签名 URL 通常也是对路径和过期时间做的 HMAC。出问题的几乎从来不是算法,而是密钥:以十六进制印出来的密钥是一串字节,而不是 a 到 f 这些字符,当成文本读就会签出完全不同的结果。这里可以先声明密钥是什么,四种摘要都通过浏览器的 Web Crypto API 计算,结果按十六进制或 Base64 呈现,直接粘进服务商文档指定的字段即可。
使用方法
- 选择密钥是纯文本、十六进制还是 Base64。
- 填入密钥和需要签名的原始消息体。
- 复制服务商要求的那种摘要的签名。
隐私说明
本工具完全在你的浏览器中运行。输入的内容不会被上传、保存或分享,关闭标签页即随之消失。
常见问题
- 我的密钥会被发送出去吗?
- 不会。密钥只由本页面内浏览器自带的 Web Crypto 实现使用,不上传、不保存、不记录,关掉标签页就没了。
- 为什么我算出的签名和服务商给的不一样?
- 几乎都是消息或密钥差了一个字节。请按请求发送时的原始请求体逐字节签名(含空白),并确认密钥是十六进制字节而不是文本。
- 现在还能用 HMAC-SHA1 吗?
- 只在需要对接强制使用它的老服务时。HMAC-SHA1 并没有像纯 SHA-1 那样被攻破,但新项目选 SHA-256 更稳妥。