如何使用HMAC 生成器
- 输入消息和密钥。
- 选择哈希算法 - HMAC-SHA256 是标准。
- 生成签名 - 可从相同的消息+密钥重现。
- 通过重新计算进行验证:使用恒定时间匹配发送者的 HMAC比较;仅在服务器端保留秘密。
HMAC 生成器是什么?
HMAC 生成器生成基于哈希的消息身份验证代码 - 使用秘密密钥计算的哈希,因此它既证明消息未被更改,又证明消息来自知道密钥的人。 HMAC-SHA256(消息,秘密)是普遍存在的形式:相同的消息+相同的密钥=相同的签名;改变其中任何一个,它都会改变。
关键是将 HMAC 与普通哈希区分开来。任何人都可以计算消息的 SHA-256;只有共享秘密的持有者才能计算正确的 HMAC——这正是它进行身份验证的原因。它回答“这是否来自我认为的人,没有改变?” ——问题是普通哈希不能。
关于HMAC 生成器
输入您的消息和密钥,选择哈希值(SHA-256 是标准),然后生成 HMAC 签名。
HMAC 运行互联网管道的位置:webhook 验证 - Stripe、GitHub、Shopify 和无数服务使用只有您和他们知道的秘密来使用 HMAC 签署 Webhook 负载;您的端点重新计算 HMAC 并进行比较,拒绝伪造或篡改的调用(规范使用 - 以这种方式验证每个 Webhook); API 请求签名 - AWS 签名,许多 API 身份验证方案 HMAC 请求,以便服务器确认它来自真正的密钥持有者并且在传输过程中没有被修改; 令牌完整性 — JWT (HS256) 中的签名是 HMAC-SHA256; 安全 cookie 和 CSRF 令牌 - HMAC 防止客户端篡改。
两个要点:秘密必须保密(泄漏它可以让任何人伪造签名 - 将其视为密码,仅在服务器端),并且验证应使用恒定时间比较(将签名与正常字符串等于泄漏攻击者可以利用的计时信息 - 库提供安全比较功能)。该生成器用于测试和学习;生产使用您语言的加密库。请参阅我们的 JWT 解码器了解令牌端和 SHA-256 了解底层哈希。