这是 HMAC 生成器:用密钥和哈希混出标签,同时证明完整性和真实性。 HMAC(RFC 2104)把密钥和哈希混在一起,标签同时证明完整性和真实性。标识符 HMAC、HMAC-SHA256、SHA-1、SHA-384、SHA-512、MD5、SHA-3、JWT、HS256、UTF-8、Hex、Base64、Web Crypto 不翻译。显示示例使用消息 The quick brown fox jumps over the lazy dog、密钥 key。HMAC-SHA256 hex 是 f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8;Base64 是 97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg=。同一对的 HMAC-SHA1 是 de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9。芯片 message / secret-key 的 HMAC-SHA256 是 287a3bd8a4fc7731a94c722079055323644d8798bd291bf9878abc9b8fd4b1d0。
HMAC-SHA256(256 位)是 API、webhook、JWT HS256 的常见选择。HMAC-SHA1(160 位)仍出现在 TOTP 和旧 OAuth;新项目请用 SHA-256。HMAC-SHA384 / HMAC-SHA512 为 384 和 512 位。HMAC-MD5 已过时。这里也提供 SHA-3。普通哈希不是 HMAC:谁都能算 SHA-256,只有持有密钥的人能算 HMAC-SHA256。
Node.js:crypto.createHmac('sha256', 'key').update('The quick brown fox jumps over the lazy dog').digest('hex') → f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8。
Python:hmac.new(b'key', b'The quick brown fox jumps over the lazy dog', hashlib.sha256).hexdigest()。
PHP:hash_hmac('sha256', 'The quick brown fox jumps over the lazy dog', 'key')。芯片 message / secret-key 对应 hash_hmac('sha256', 'message', 'secret-key') → 287a3bd8a4fc7731a94c722079055323644d8798bd291bf9878abc9b8fd4b1d0。
HMAC 不加密,也不隐藏消息。Hex 每字节 2 个字符(SHA-256 共 64 位 hex)。Base64 是同一组字节。生产环境请用恒定时间比较;本页为方便使用普通相等比较。
普通摘要:MD5 与 SHA 哈希。令牌:JWT 解码。校验和:CRC32。