跳到工具

HMAC 生成

用你自己的密钥在浏览器中计算 HMAC-SHA-256/384/512 消息认证码。

HMAC 是带密钥的哈希消息认证码。它把密钥和哈希函数结合,用于同时证明消息的完整性与来源真实性——只有持有相同密钥的人才能算出相同结果。

与普通哈希不同,HMAC 能抵抗长度扩展攻击,是签名 webhook 载荷、API 请求和 Cookie 的标准做法。

HMAC-SHA-256 是 webhook 签名和 API 请求签名的当前默认算法;要求更高安全余量的协议也支持 SHA-384 和 SHA-512。

常见用途

常见问题

哈希和 HMAC 有什么区别?
哈希只能证明数据未被篡改;HMAC 还能证明数据来自持有密钥的一方。只要关心来源真实性就该用 HMAC。
该选哪个算法?
SHA-256 是当前的默认选择,快且安全。若协议要求更高的安全余量,可以选 SHA-384 或 SHA-512。
HMAC 能用来存密码吗?
不能。HMAC 是为消息认证设计的,不是密码存储。密码需要刻意设计的慢速、内存困难算法,如 Argon2id 或 bcrypt。
密钥太短怎么办?
HMAC 会自动把短密钥填充或哈希到块大小。32 位随机字符串是常用且安全的选择。
结果是确定的吗?
是。相同密钥和消息永远得到相同 HMAC,接收方正是靠这一点在不看到密钥的情况下验证签名。

相关工具