HMAC 生成器 (在浏览器中计算 HMAC-SHA256)
一款可直接在此处生成 HMAC SHA256 的 HMAC 计算工具。密钥和输入既不发送也不存储。
支持文本/Hex/Base64 输入和 Hex/Base64 输出。使用浏览器标准 Crypto API 进行安全计算。
输入和输出
本页面完全在浏览器内执行计算,不发送数据。
* API 规范中的“字节序列”很重要。如果密钥是二进制的,请输入 Hex/Base64。
选项
如果换行符因操作系统或复制粘贴而不同,结果也会改变。
由于 API 签名假设“完全匹配”,通常建议保持原样。
用法
创建 HMAC 签名的基本 3 个步骤。
- 1 输入密钥 (如果 API 规范是二进制,请选择 Hex / Base64)
- 2 输入消息 (待签名字符串 / payload)
- 3 选择输出格式 (Hex / Base64) 并复制
HMAC 是基于“字节序列”而不是“字符串”计算的。即使看起来一样,如果字符编码、换行符或多余的空格不同(假设 UTF-8),结果也会不同。
示例 (用于验证的测试向量)
点击“加载示例”以填充输入字段。
常见陷阱
如果换行处理方式不同,结果会改变。
由于签名假设完全匹配,去除空格可能会导致不匹配。
Base64URL 通常使用 +→-,/→_,并省略 =。请检查规范。
示例:输入 'deadbeef' 作为'字符串' vs 作为 '字节序列 0xDE 0xAD...' 输入。
补充信息
一种使用密钥和消息创建签名的机制。第三方如果没有相同的密钥,无法创建相同的结果。
SHA-256 是'哈希',HMAC 是'带密钥的哈希 (签名)'。
用于 API 签名、Webhook 验证、请求篡改检测等。
常见问题 (FAQ)
密钥会被存储吗?
不会存储。本工具在浏览器内计算,不会将密钥或消息发送到服务器。(※作为预防措施,在共享 PC 上输入后请重置)
Base64 还是 Hex?
两者都在使用。您可以选择输出格式 (Hex / Base64 / Base64URL)。请根据 API 规范进行选择。
字符编码?
假设为 UTF-8。文本输入将作为 UTF-8 转换为字节进行计算。处理二进制请使用 Hex / Base64 输入。
HMAC 和 SHA-256 哈希的区别?
SHA-256 是'哈希',HMAC 是'带密钥的哈希 (签名)'。除非密钥匹配,否则无法生成相同的结果。
输出不匹配
常见原因是 (1) 密钥处理 (文本 vs 二进制),(2) 换行符,(3) 空格,(4) Base64URL。请按顺序检查上面的陷阱。