🔐
HMAC 生成器
基于哈希的消息认证码
💡 提示: HMAC 是一种基于哈希函数和密钥的消息认证机制。支持 MD5、SHA1、SHA224、SHA256、SHA384、SHA512、SHA3 和 RIPEMD160 算法。

HMAC 生成器 - 基于哈希的消息认证码

这款 HMAC(基于哈希的消息认证码)生成器允许您使用密钥和哈希函数为消息创建加密签名。HMAC 同时提供数据完整性和真实性验证,是 API 认证、Webhook 验证和安全消息传输的重要工具。

什么是 HMAC?

HMAC 是一种特定类型的消息认证码,它将加密哈希函数与秘密加密密钥相结合。根据 RFC 2104,HMAC 可以与任何哈希函数(MD5、SHA1、SHA256 等)一起使用。该算法生成一个固定大小的输出,该输出取决于消息内容和密钥,确保任何对消息的修改或对密钥的未授权访问都会被检测到。

支持的哈希算法

  • 🔐 HMAC-MD5: 速度快但加密强度较弱。仅用于向后兼容。
  • 🔐 HMAC-SHA1: 已不推荐用于新应用,但仍用于某些 API。
  • 🔐 HMAC-SHA256: 推荐用于大多数应用。安全性与性能的良好平衡。
  • 🔐 HMAC-SHA512: 最高安全级别。适用于敏感数据和高安全性应用。
  • 🔐 HMAC-SHA384/SHA224: SHA-2 的替代变体,适用于特定需求。
  • 🔐 HMAC-SHA3: 最新的 SHA 系列标准,抗长度扩展攻击。
  • 🔐 HMAC-RIPEMD160: 用于某些区块链应用和比特币相关系统。

HMAC 常见使用场景

  • ✓ API 认证: AWS Signature v4、Twitter API 和许多 REST API 使用 HMAC 进行请求签名。
  • ✓ Webhook 验证: 验证来自 GitHub、Stripe 和 Slack 等服务的 Webhook 负载。
  • ✓ JWT 签名: JSON Web Tokens 通常使用 HMAC (HS256、HS384、HS512) 进行令牌签名。
  • ✓ 消息完整性: 确保消息在传输过程中未被篡改。
  • ✓ 文件验证: 使用基于密钥的校验和验证文件完整性。
  • ✓ 密码哈希: 某些系统使用带密钥扩展的 HMAC 进行密码存储(尽管 bcrypt/Argon2 更受推荐)。

如何使用此 HMAC 生成器

  1. 输入消息: 输入您要认证的文本或数据。
  2. 提供密钥: 输入一个密钥。请妥善保管此密钥 - 任何拥有该密钥的人都可以生成有效的 HMAC。
  3. 选择算法: 选择哈希函数(SHA256 适用于大多数用例)。
  4. 选择输出格式: 选择 Hex、Base64、Base64url 或二进制格式。
  5. 生成 HMAC: 点击按钮计算认证码。

HMAC 安全最佳实践

  • ⚠ 密钥安全: 保护好您的密钥。切勿将它们提交到版本控制系统或公开分享。
  • ⚠ 密钥轮换: 为生产系统实施密钥轮换策略,以限制密钥泄露时的影响范围。
  • ⚠ 算法选择: 新应用使用 SHA256 或更高级别。避免在安全关键系统中使用 MD5 和 SHA1。
  • ⚠ 消息唯一性: 在消息中包含时间戳或随机数以防止重放攻击。

HMAC 算法特性

  • 认证: 证明消息来自知道密钥的人
  • 完整性: 检测消息在传输过程中的任何修改
  • 不可否认性: 提供消息由密钥持有者发送的证据(有注意事项)
  • 固定输出: 生成与底层哈希函数相同长度的输出
🔒 安全说明:

此工具使用 Web Crypto API 在浏览器中完全执行所有 HMAC 计算。没有任何数据发送到服务器。请记住,HMAC 提供消息认证但不提供加密。要保护敏感数据,请将 HMAC 与加密结合使用。始终使用强随机生成的密钥,切勿在客户端代码中暴露它们。