HMAC 生成与校验工具
这款 HMAC 生成器直接在你的浏览器中,根据一个密钥和一条消息生成基于哈希的消息认证码(Hash-based Message Authentication Code)。把任意消息与你的密钥和哈希算法搭配,即可生成一段认证码,用以证明数据完整无误,且来自持有密钥的一方。
它专为需要给 Webhook 载荷、API 请求和 JWT(HS256)加签、验签的开发者打造。可从 8 种算法中任选,输入支持 String、Hex 或 Base64,结果同时以 Hex 和 Base64 两种形式呈现——并内置校验模式,可与预期签名逐一比对。
如何生成 HMAC
选择算法
从下拉菜单中选择你的哈希算法。SHA-256 是默认选项,也是大多数 Webhook、API 和 JWT 的正确之选。MD5 和 SHA-1 可用于兼容旧系统,但会带有不安全标记。
输入密钥
在密钥字段中输入或粘贴你的密钥。如果密钥是二进制的,请在 String、Hex 和 Base64 之间切换它的输入类型,以便正确读取字节。
输入消息
粘贴你想要认证的消息——例如原始的 Webhook 请求体。与密钥一样,将它的输入类型设为 String、Hex 或 Base64,以匹配数据。
读取并复制 HMAC
认证码会随输入自动生成,并同时以 Hex 和 Base64 显示。如需要可为 Hex 切换大写,再点击任一输出旁的复制按钮。若要校验某个值,开启校验 HMAC 并粘贴预期签名,即可立即看到匹配或不匹配标记。
功能特性
8 种 HMAC 算法
可用 MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、SHA3-256 和 SHA3-512 生成认证码,适配任何对接场景。
灵活的输入类型
密钥和消息均支持 String(UTF-8)、Hex 或 Base64——对接 API 的二进制密钥时不可或缺。
Hex 与 Base64 双重输出
并排查看 HMAC 的十六进制和 Base64 两种形式——无需在格式间来回切换。
Hex 大写切换
在小写与大写之间切换 Hex 输出,以匹配你的服务所要求的格式。
HMAC 校验模式
粘贴一个预期值,即可立即看到匹配或不匹配——支持 Hex 或 Base64,并自动统一大小写和空白字符。
安全标记
MD5、SHA-1 等弱算法会被清晰地标为不安全,帮你在生产环境中避开它们。
实时生成
HMAC 会随你的输入或粘贴自动更新,并以状态指示显示当前算法和位长。
一键复制
在每种格式的复制按钮上轻轻一点,即可把 Hex 或 Base64 输出复制到剪贴板。
Webhook 示例数据
一键载入现成的 Webhook 载荷和密钥,亲眼看清一段签名是如何构建出来的。
纯客户端处理
所有运算都在你的浏览器本地完成——密钥和消息绝不会发送到服务器。
常见问题
什么是 HMAC?
HMAC(基于哈希的消息认证码)将一个密钥与一个哈希函数结合,生成一段认证码。它同时提供完整性和身份认证:既证明消息未被篡改,也证明它来自知道密钥的一方。它广泛用于 Webhook 签名、API 请求签名(如 AWS Signature V4)以及 JWT 签名(HS256)。
我应该选用哪种 HMAC 算法?
SHA-256 使用最广泛,也是大多数场景的正确默认值——Stripe、GitHub、Shopify 的 Webhook 以及 AWS API 签名都用它。当你需要更长的 512 位输出时使用 SHA-512,想用最新标准时选 SHA3 系列。
HMAC 中的密钥是什么?
密钥是只有收发双方知道的共享值——对于 Webhook 来说,就是你的服务商给你的签名密钥。生成和校验签名必须使用同一个密钥;没有它,HMAC 既无法伪造也无法验证。
如何校验 Webhook 签名?
把 Webhook 的签名密钥填入密钥,将原始请求体粘贴为消息,并选择你的服务所用的算法(通常是 SHA-256)。然后开启校验 HMAC,粘贴 Webhook 请求头中的签名,即可立即看到匹配或不匹配标记。
Hex 和 Base64 输出有什么区别?
Hex 把每个字节表示为两个十六进制字符(0-9、a-f);它更长,但便于阅读和调试。Base64 约短 33%,常见于 HTTP 请求头和 JWT 中。本工具同时显示两者,方便你复制 API 所需的那种格式。
密钥何时该使用 Hex 或 Base64 输入类型?
当你的密钥以该编码的原始字节形式提供时,请选择 Hex 或 Base64——例如来自 API 控制台的一段 Hex 字符串。这会告诉工具在哈希前先解码该值。多数情况下,普通的 UTF-8 密钥意味着你应保持 String 输入类型。
为什么 MD5 和 SHA-1 被标为不安全?
MD5 和 SHA-1 存在已知的碰撞弱点。HMAC 这一构造仍能增加防护,因此 HMAC-MD5 和 HMAC-SHA1 在某些旧系统场景中依然安全,但任何新实现的最佳做法都是选择 SHA-256 或更高算法。这正是两者被标记的原因。
我的数据安全吗?
安全。每一段 HMAC 都完全在你的浏览器中计算——没有任何数据被发送至服务器。你的密钥和消息始终留在你的设备上,不会被记录或存储。
还没有评论,快来发表第一条!