语言
English English Vietnamese (Tiếng Việt) Vietnamese (Tiếng Việt) Chinese (简体中文) Chinese (简体中文) Portuguese (Brazil) (Português do Brasil) Portuguese (Brazil) (Português do Brasil) Spanish (Español) Spanish (Español) Indonesian (Bahasa Indonesia) Indonesian (Bahasa Indonesia)
HMAC 生成器

HMAC 生成器

生成并校验 HMAC 消息认证码,支持 SHA-256、SHA-512、SHA3、MD5 等 8 种算法,密钥与消息可选 String/Hex/Base64,为 Webhook 和 API 签名加签验签。

HMAC 生成与校验工具

这款 HMAC 生成器直接在你的浏览器中,根据一个密钥和一条消息生成基于哈希的消息认证码(Hash-based Message Authentication Code)。把任意消息与你的密钥和哈希算法搭配,即可生成一段认证码,用以证明数据完整无误,且来自持有密钥的一方。

它专为需要给 Webhook 载荷API 请求JWT(HS256)加签、验签的开发者打造。可从 8 种算法中任选,输入支持 String、Hex 或 Base64,结果同时以 Hex 和 Base64 两种形式呈现——并内置校验模式,可与预期签名逐一比对。

隐私至上:每一段 HMAC 都通过 CryptoJS 库完全在你的浏览器中计算。你的密钥和消息绝不会被上传、记录或存储在任何服务器上。

如何生成 HMAC

1

选择算法

从下拉菜单中选择你的哈希算法。SHA-256 是默认选项,也是大多数 Webhook、API 和 JWT 的正确之选。MD5 和 SHA-1 可用于兼容旧系统,但会带有不安全标记。

2

输入密钥

密钥字段中输入或粘贴你的密钥。如果密钥是二进制的,请在 StringHexBase64 之间切换它的输入类型,以便正确读取字节。

3

输入消息

粘贴你想要认证的消息——例如原始的 Webhook 请求体。与密钥一样,将它的输入类型设为 String、Hex 或 Base64,以匹配数据。

4

读取并复制 HMAC

认证码会随输入自动生成,并同时以 HexBase64 显示。如需要可为 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 输入类型?

当你的密钥以该编码的原始字节形式提供时,请选择 HexBase64——例如来自 API 控制台的一段 Hex 字符串。这会告诉工具在哈希前先解码该值。多数情况下,普通的 UTF-8 密钥意味着你应保持 String 输入类型。

为什么 MD5 和 SHA-1 被标为不安全?

MD5 和 SHA-1 存在已知的碰撞弱点。HMAC 这一构造仍能增加防护,因此 HMAC-MD5 和 HMAC-SHA1 在某些旧系统场景中依然安全,但任何新实现的最佳做法都是选择 SHA-256 或更高算法。这正是两者被标记的原因。

我的数据安全吗?

安全。每一段 HMAC 都完全在你的浏览器中计算——没有任何数据被发送至服务器。你的密钥和消息始终留在你的设备上,不会被记录或存储。

不安全
密钥
消息
HMAC 输出结果

请输入密钥和消息以生成 HMAC

Hex
Base64
就绪
|
从下拉菜单中选择算法——大多数场景推荐使用 SHA-256
当密钥或消息为二进制格式时,请使用输入类型选择器(String/Hex/Base64)
开启校验 HMAC,把输出结果与预期值逐一比对——支持 Hex 和 Base64
MD5 与 SHA-1 被标记为不安全——生产环境请改用 SHA-256 或更高算法
点击示例数据载入一个 Webhook 签名示例
全部运算都在你的浏览器中完成——密钥和消息绝不会发送至任何服务器
想了解更多? 阅读文档 →
1/7
开始输入以搜索...
搜索中...
未找到结果
请尝试使用不同的关键词搜索