HMAC 生成器
使用 MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、SHA3-256、SHA3-512 或 RIPEMD-160,根据消息和密钥生成 HMAC(基于哈希的消息认证码),支持十六进制或 Base64 输出,并可选择与预期的 HMAC 进行比对验证。
输入
密钥按 UTF-8 文本解析。
十六进制比较不区分大小写;Base64 区分大小写。
输出
仅在提供预期 HMAC 时显示。
使用此工具的更多方式
REST API
curl -X POST https://api.iotools.cloud/v1/tool/hmac-generator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputText": "The quick brown fox jumps over the lazy dog",
"secret": "key",
"algorithm": "sha256",
"outputFormat": "hex",
"expectedHmac": ""
}'替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。
让 AI 代理执行
Use the IOTools `hmac-generator` tool (HMAC Generator) on this input:
YOUR_INPUT_HERE将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。
嵌入式小组件
<iframe
src="https://iotools.cloud/embed/hmac-generator/"
width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
title="HMAC 生成器 — iotools.cloud"
sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
allow="clipboard-write"
style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。
| 每次 API/MCP 调用费用 | 5 积分起 |
|---|---|
| 需要更多积分? | 查看定价 |
也可通过
使用指南
直接在浏览器中,根据任意消息和密钥生成 HMAC(基于哈希的消息认证码)。选择哈希算法,选择十六进制或 Base64 输出;如果你手头有预期值,可以直接粘贴进行一步验证。
什么是 HMAC?
HMAC 是一种带密钥的密码学校验值。与普通哈希(任何人仅凭消息即可重新计算)不同,HMAC 还混入了密钥,因此只有知道该密钥的一方才能生成或验证这一校验码。它由 RFC 2104 定义,是证明消息既真实(来自持有密钥的一方)又完整(传输过程中未被篡改)的标准方法。
HMAC 无处不在:API 请求签名(AWS Signature、Stripe、GitHub 和 Slack 的 Webhook)、TLS 内部的完整性保护层、JWT 的 HS256/HS512 令牌,以及基于密码的密钥派生(PBKDF2 即构建于 HMAC 之上)。
如何使用本工具
- 输入需要认证的消息。
- 输入密钥——它会被当作 UTF-8 文本处理。
- 选择哈希算法(SHA-256 是合理的默认选择)。
- 选择输出格式:小写十六进制、大写十六进制或 Base64。
- 从输出框中读取计算得到的 HMAC,按需复制或下载。
若要核对已有的值,将其粘贴到预期 HMAC 中,工具会显示"匹配"或"不匹配"。十六进制比较不区分大小写;Base64 区分大小写。
所有运算都在你的浏览器本地完成——你的消息和密钥永远不会发送到服务器。
应该选择哪种算法?
请选择与你所集成的系统要求一致的算法。除非另有说明,HMAC-SHA256 是现代的默认选择,也是正确的选择。SHA-384 和 SHA-512 会生成更长的校验码;SHA3-256 和 SHA3-512 则使用较新的 Keccak 系列算法。
MD5、SHA-1 和 RIPEMD-160 仅为兼容旧系统而提供。尽管 HMAC 即使基于较弱的哈希仍相对稳健,但新项目请不要选择这些算法。
常见问题
HMAC 和哈希是一回事吗?
不是。哈希只接收消息;HMAC 同时接收消息和密钥。两个拥有相同消息的人会得到相同的哈希,但只有同时知道密钥的人才能复现 HMAC。
为什么我的结果与其他工具不同?
最常见的原因是密钥编码。本工具将密钥视为 UTF-8 文本。如果其他工具将密钥读取为十六进制或 Base64 字节,那么对于看起来相同的字符,结果会不同。消息中的换行符(\n 与 \r\n)以及末尾的空白字符也会改变输出。
我可以用它来验证 Webhook 签名吗?
可以。将算法设置为与服务商一致(通常为 SHA-256),将签名密钥作为密钥输入,将原始请求体作为消息输入,然后使用"预期 HMAC"字段,将结果与签名头进行比较。
将我的密钥粘贴到这里安全吗?
计算完全在你的浏览器中进行,不会传输任何内容。本工具的可分享链接也从不包含消息或密钥。尽管如此,请避免在你无法控制的计算机上,将生产环境的机密信息粘贴到任何网页工具中。