算法
输出
— 本地计算
关于此工具
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。