HMAC(Hash-based Message Authentication Code,基于哈希的消息认证码)是一种使用密钥和哈希函数来生成消息认证码的机制。它可以同时验证消息的完整性和真实性。本工具基于浏览器原生 Web Crypto API 实现,所有计算在本地完成,密钥不会上传到服务器。
HMAC 通过将密钥与消息结合,再经过哈希函数处理,生成固定长度的认证码。其计算公式为:HMAC(K, m) = H((K' XOR opad) || H((K' XOR ipad) || m)),其中 K 是密钥,m 是消息,H 是哈希函数。
普通哈希(如 SHA-256)只需要消息输入,任何人都可以计算。HMAC 需要额外的密钥,只有持有密钥的人才能计算和验证,因此可以防止伪造。
理论上密钥可以是任意长度。如果密钥长于哈希块大小(SHA-256 为 64 字节),会先对密钥进行哈希;如果短于块大小,会用零填充。建议密钥长度至少等于哈希输出长度(如 SHA-256 建议 32 字节)。
所有计算完全在浏览器本地进行,使用 Web Crypto API,密钥和消息不会发送到任何服务器。但请注意不要在公共电脑上输入生产环境的真实密钥。