🔐 输入消息与密钥
🔒 本地计算
🔒 计算结果
64 位十六进制
HMAC-SHA256
—
已复制到剪贴板
ℹ️ HMAC-SHA256 知识参考
什么是 HMAC-SHA256?
HMAC-SHA256 是基于 SHA-256 哈希算法的密钥消息认证码(Hash-based Message Authentication Code)。它把密钥与消息一起参与哈希运算,生成 256 位、也就是 64 个十六进制字符的认证码。与普通 SHA-256 摘要不同,HMAC-SHA256 必须持有相同密钥才能生成或验证结果,因此常用于接口签名、Webhook 校验、JWT 签名验证以及数据完整性保护。
HMAC-SHA256 与 SHA-256 的区别
- SHA-256:对消息本身计算摘要,不包含密钥,任何人都能重新计算。
- HMAC-SHA256:把密钥和消息一起参与运算,具备消息认证能力,可防止未授权篡改与伪造。
- 输出长度:两者都输出 256 位,即 64 个十六进制字符。
- 适用场景:只需要校验数据是否变化时可用 SHA-256;需要验证消息来源和完整性时优先使用 HMAC-SHA256。
常见使用场景
- API 接口签名:将请求参数与密钥按约定规则生成 HMAC-SHA256 签名,服务端使用相同密钥验签。
- Webhook 校验:校验回调请求是否来自可信发送方,并确认消息内容未被篡改。
- JWT 签名验证:HS256 算法即使用 HMAC-SHA256 对 JWT 头部和载荷进行签名。
- 数据完整性校验:在文件传输、配置分发等场景中比对认证码,及时发现内容变化。
如何使用本工具
- 在“消息”输入框中粘贴需要签名的文本,支持中文、英文、数字和符号,按 UTF-8 编码。
- 在“密钥”输入框中输入双方约定的密钥;留空时使用默认密钥 default-key。
- 点击“计算 HMACSHA256”,右侧会输出 64 位小写十六进制认证码。
- 点击“复制结果”即可将 HMAC-SHA256 值复制到剪贴板。
HMAC-SHA256 计算示例
例如消息为 hello、密钥为 secret 时,HMAC-SHA256 结果为:
88aab3ede8d3adf94d26ab90d3bafd4a2083070c3bcce9c014ee04a443847c0b你可以把上述消息与密钥填入工具,验证输出结果是否一致。
安全使用建议
- 正式环境请使用足够随机、长度足够的高强度密钥,不要使用弱口令或公开示例密钥。
- HMAC 密钥应保存在服务端安全环境中,避免在前端代码或公开仓库中泄露。
- 比对认证码时建议使用恒定时间比较,降低时序攻击风险。
- 本工具在浏览器本地完成计算,消息与密钥不会上传服务器;但仍建议不要在不受信任的公共电脑上处理生产密钥。
常见问题
HMAC-SHA256 的输出长度是多少?
输出为 256 位,即 64 个十六进制字符。本工具默认输出小写十六进制字符串。
密钥可以留空吗?
可以,留空时本工具使用 default-key 作为默认密钥。正式用于接口签名或安全校验时,请始终使用自定义高强度密钥。
计算过程会上传消息或密钥吗?
不会。本工具使用本地加载的 CryptoJS 库在浏览器中完成计算,消息和密钥不会发送到服务器。
HMAC-SHA256 和 SHA-256 应该选哪个?
如果只需要校验数据是否改变且不需要密钥,可使用 SHA-256;如果需要验证消息来源和完整性,防止未授权方伪造,应使用 HMAC-SHA256。