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 生成器
- 輸入消息: 輸入您要認證的文本或數據。
- 提供密鑰: 輸入一個密鑰。請妥善保管此密鑰 - 任何擁有該密鑰的人都可以生成有效的 HMAC。
- 選擇算法: 選擇哈希函數(SHA256 適用於大多數用例)。
- 選擇輸出格式: 選擇 Hex、Base64、Base64url 或二進制格式。
- 生成 HMAC: 點擊按鈕計算認證碼。
HMAC 安全最佳實踐
- ⚠ 密鑰安全: 保護好您的密鑰。切勿將它們提交到版本控制系統或公開分享。
- ⚠ 密鑰輪換: 為生產系統實施密鑰輪換策略,以限制密鑰泄露時的影響範圍。
- ⚠ 算法選擇: 新應用使用 SHA256 或更高級別。避免在安全關鍵系統中使用 MD5 和 SHA1。
- ⚠ 消息唯一性: 在消息中包含時間戳或隨機數以防止重放攻擊。
HMAC 算法特性
- 認證: 證明消息來自知道密鑰的人
- 完整性: 檢測消息在傳輸過程中的任何修改
- 不可否認性: 提供消息由密鑰持有者發送的證據(有注意事項)
- 固定輸出: 生成與底層哈希函數相同長度的輸出
🔒 安全説明:
此工具使用 Web Crypto API 在瀏覽器中完全執行所有 HMAC 計算。沒有任何數據發送到伺服器。請記住,HMAC 提供消息認證但不提供加密。要保護敏感數據,請將 HMAC 與加密結合使用。始終使用強隨機生成的密鑰,切勿在客户端代碼中暴露它們。