—
关于 HMAC
- HMAC(哈希消息认证码)由 RFC 2104 定义,同时验证数据完整性和真实性
- 与普通哈希不同,HMAC 需要共享密钥——没有密钥的攻击者无法伪造合法签名
- 输出长度对应底层哈希:SHA-1 = 20 字节,SHA-256 = 32 字节,SHA-384 = 48,SHA-512 = 64
常见使用场景
- API 请求签名——AWS Signature V4、阿里云、Stripe webhook
- Webhook 校验——GitHub、Stripe、Slack 通过 HMAC 头证明 webhook 真实性
- Session Token——JWT HS256 本质就是 HMAC-SHA256 签名
- TOTP——Google Authenticator 底层使用 HMAC-SHA1