CRYPTO DESK / LIVEHMAC加载中
HMAC - 加密工具 · 萤炬工具箱 · 工具说明与使用指南
HMAC - 加密工具 · 萤炬工具箱
HMAC 计算带密钥的消息认证码,验证数据是否由持有同一密钥的人生成、中途有没有被改动,是接口签名、Webhook 验签、支付回调校验的标准做法。支持 HMAC-SHA256 / SHA384 / SHA512 与 HMAC-MD5、SHA1、SHA3,密钥可按 UTF-8 或十六进制输入。支持 HMAC-SHA25…
HMAC 计算带密钥的消息认证码,验证数据是否由持有同一密钥的人生成、中途有没有被改动,是接口签名、Webhook 验签、支付回调校验的标准做法。支持 HMAC-SHA256 / SHA384 / SHA512 与 HMAC-MD5、SHA1、SHA3,密钥可按 UTF-8 或十六进制输入。
使用步骤
- 选择算法,对接第三方接口时按对方文档选,通常是 HMAC-SHA256。
- 填入待签名的消息内容,注意拼接顺序与分隔符要和对方约定完全一致。
- 填入密钥,并选对密钥的解释方式:UTF-8 当文本、Hex 当十六进制字节。
- 复制输出的十六进制签名,与对方给的值逐字符比对。
功能与限制
- 支持 HMAC-SHA256 / SHA384 / SHA512、HMAC-MD5、HMAC-SHA1、HMAC-SHA3。
- 密钥支持 UTF-8 文本或十六进制字节两种解释方式。
- 单向运算,只能重算比对,无法逆推原文或密钥。
- 在浏览器本地运算,消息与密钥不上传。
常见问题
- HMAC 能反推出原文或密钥吗?
- 不能。HMAC 建立在哈希之上,是单向运算,没有解密操作。它的用途是「双方各算一次比对是否相同」,不是把数据取回来。
- 本地算的签名和服务端不一致,先查什么?
- 九成是待签名字符串没对齐:参数排序、分隔符、是否含空参数、时间戳格式、有没有多余的换行或末尾空格。其次查密钥编码方式,同一串密钥按 UTF-8 与按 Hex 解释会得到完全不同的结果。
- HMAC-MD5 还能用吗?
- MD5 本身抗碰撞已被攻破,但套进 HMAC 结构后目前还没有实用伪造攻击,所以旧系统对接时仍可用。新设计一律选 HMAC-SHA256 起步。
- HMAC 和直接把密钥拼在原文前面做哈希有什么区别?
- HMAC 用两轮哈希加内外填充,专门抵御长度扩展攻击;朴素的「密钥加原文再哈希」在某些哈希结构下能被攻击者在不知密钥的情况下追加内容并算出合法签名。所以要用 HMAC 而不是自己拼。