TontonTools

HMAC 生成器

生成 HMAC 签名 — 使用密钥对消息进行身份验证。

100% 免费 没有注册 保护隐私 密码与安全
已更新9月 2026

Share X / Twitter Facebook LinkedIn WhatsApp

如何使用HMAC 生成器

  1. 输入消息密钥
  2. 选择哈希算法 - HMAC-SHA256 是标准。
  3. 生成签名 - 可从相同的消息+密钥重现。
  4. 通过重新计算进行验证:使用恒定时间匹配发送者的 HMAC比较;仅在服务器端保留秘密。

HMAC 生成器是什么?

HMAC 生成器生成基于哈希的消息身份验证代码 - 使用秘密密钥计算的哈希,因此它既证明消息未被更改,又证明消息来自知道密钥的人。 HMAC-SHA256(消息,秘密)是普遍存在的形式:相同的消息+相同的密钥=相同的签名;改变其中任何一个,它都会改变。

关键是将 HMAC 与普通哈希区分开来。任何人都可以计算消息的 SHA-256;只有共享秘密的持有者才能计算正确的 HMAC——这正是它进行身份验证的原因。它回答“这是否来自我认为的人,没有改变?” ——问题是普通哈希不能。

关于HMAC 生成器

输入您的消息和密钥,选择哈希值(SHA-256 是标准),然后生成 HMAC 签名。

HMAC 运行互联网管道的位置:webhook 验证 - Stripe、GitHub、Shopify 和无数服务使用只有您和他们知道的秘密来使用 HMAC 签署 Webhook 负载;您的端点重新计算 HMAC 并进行比较,拒绝伪造或篡改的调用(规范使用 - 以这种方式验证每个 Webhook); API 请求签名 - AWS 签名,许多 API 身份验证方案 HMAC 请求,以便服务器确认它来自真正的密钥持有者并且在传输过程中没有被修改; 令牌完整性 — JWT (HS256) 中的签名是 HMAC-SHA256; 安全 cookie 和 CSRF 令牌 - HMAC 防止客户端篡改。

两个要点:秘密必须保密(泄漏它可以让任何人伪造签名 - 将其视为密码,仅在服务器端),并且验证应使用恒定时间比较(将签名与正常字符串等于泄漏攻击者可以利用的计时信息 - 库提供安全比较功能)。该生成器用于测试和学习;生产使用您语言的加密库。请参阅我们的 JWT 解码器了解令牌端和 SHA-256 了解底层哈希。

常见问题解答

秘密钥匙。任何人都可以计算 SHA-256(消息);只有密钥持有者才能计算出正确的 HMAC(消息,密钥)。所以一个简单的哈希证明了完整性; HMAC 证明完整性和真实性——它来自拥有共享秘密的人。
使用共享密钥重新计算原始请求正文的 HMAC,与发送者放入标头中的签名进行比较(恒定时间)。匹配=真实且未改变;不匹配=拒绝。这是针对伪造网络钩子的标准防御。
正常的字符串比较会在第一个不匹配的字符处尽早返回,微小的时间差异会泄露签名的正确程度,足以让攻击者逐字节伪造签名。加密库为此提供了恒定时间比较(hash_equals、crypto.timingSafeEqual)。
任何人都可以伪造有效签名——完全失去保证。立即轮换机密,将其视为密码(环境变量、机密管理器,切勿在客户端代码或版本控制中)。
HMAC-SHA256 是默认标准 — 安全且通用。 HMAC-SHA512 较长的输出或规范需要它。避免在新系统中使用 HMAC-MD5/SHA1(虽然 HMAC 构造比原始使用更宽容,但底层哈希很弱)。

We use cookies for analytics and to keep the tools free via ads. See our Privacy Policy.