HMAC 生成器(浏览器内 HMAC-SHA256)
一个无需联网的 HMAC SHA256 生成页面,可快速计算 HMAC 并核对签名。
所有处理都在浏览器本地完成。密钥和消息绝不会传输或保存。
使用方法(如何创建 HMAC 签名)
- 输入密钥。如果 API 规范提供的是二进制密钥字节,请选择 Hex 或 Base64 输入格式。
- 输入要签名的消息负载。
- 选择输出格式(Hex / Base64 / Base64URL),然后复制结果。
示例(测试向量)
示例 1(简短校验)
输入: Key = secret(UTF-8),Message = message(UTF-8)
HMAC-SHA256(Hex):8b5f48702995c1598c573db1e21866a9b825d4a794d169d7060a03605796360b
HMAC-SHA256(Base64):i19IcCmVwVmMVz2x4hhmqbgl1KeU0WnXBgoDYFeWNgs=
示例 2(常见短语)
输入: Key = key,Message = The quick brown fox jumps over the lazy dog
Hex:f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
Base64:97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg=
常见陷阱
- LF 与 CRLF 的换行差异会产生不同签名。
- 去除前后空格可能导致 API 签名不匹配。
- Base64URL 通常表示把 + 替换为 -、/ 替换为 _,并省略 = 填充。请核对你的 API 规范。
- 如果密钥是以 Hex / Base64 字节分发的,把它当成普通文本会导致结果不一致。
常见问题
我的密钥会被存储吗?
不会。此工具只在浏览器中计算,不会把密钥或消息发送到任何服务器。
应该用 Base64 还是 Hex?
两者都很常见。你可以选择 Hex / Base64 / Base64URL 输出,以匹配你的 API 规范。
使用什么字符编码(UTF-8)?
文本输入会在计算 HMAC 前按 UTF-8 编码。对于二进制值,请使用 Hex / Base64 输入。
HMAC 和 SHA-256 哈希有什么区别?
SHA-256 是普通哈希。HMAC 会加入密钥,用于消息认证。
我的输出不一致,该检查什么?
请检查密钥解释方式(文本还是字节)、换行处理、空格裁剪以及 Base64URL 规则。
补充说明
什么是 HMAC?
HMAC 是一种带密钥的消息认证码,使用秘密密钥和哈希函数生成。
与 SHA-256 的区别
SHA-256 本身不包含密钥。HMAC-SHA256 需要共享密钥,因此常用于签名。
典型用途
API 请求签名、Webhook 校验,以及 token 完整性检查。