OpenReplay Logo
12k
12k

HMAC 生成器

根据消息和密钥生成 HMAC 签名 — 选择 SHA-1、SHA-256、SHA-384 或 SHA-512,并获取 hex 或 Base64 输出。所有计算都在你的浏览器中运行。

算法
输出
本地计算

关于此工具

HMAC(基于哈希的消息认证码)将消息、密钥和哈希函数结合起来,生成一个既能证明消息完整性又能证明消息真实性的签名。任何共享该密钥的人都可以重新计算 HMAC,并确认消息未被篡改 — 它是 webhook 签名(Stripe、GitHub、Slack)、签名 cookie 以及许多 API 认证方案背后的机制。

输入你的消息和密钥,选择哈希算法和输出编码,签名会随着你的输入实时更新。它通过浏览器中的 Web Crypto API 计算,因此消息和密钥都不会被发送到任何服务器。除非特定集成另有要求,否则请使用 SHA-256。

消息和密钥绝不会离开你的浏览器 — HMAC 通过 Web Crypto API 在本地计算。

常见问题

HMAC 与普通哈希有什么区别?

普通哈希(如 SHA-256)任何人都可以仅凭消息计算出来,因此它只能证明完整性。HMAC 还会混入一个密钥,因此有效的签名同时还能证明发送方知道该密钥 — 这正是它在认证中有用的原因。

我应该使用哪种算法?

SHA-256 是标准选择,也是大多数 API 所期望的。SHA-384 和 SHA-512 提供更大的输出;SHA-1 仍受支持以兼容旧有集成,但不再推荐用于新系统。

输出 hex 还是 Base64 更好?

它们编码的是相同的字节 — 选择你的集成所期望的那种即可。Webhook 提供方通常会指定其中一种;例如 GitHub 使用 hex,而其他一些则使用 Base64。