HMAC 生成器
產生 HMAC-SHA-256、HMAC-SHA-384 或 HMAC-SHA-512,從精確的 UTF-8 或十六進位金鑰以及訊息位元組產生。
隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。
使用方式
- 1.選擇 SHA-256、SHA-384 或 SHA-512,並確認協定需要完整的 HMAC 標籤。
- 2.分別為金鑰與訊息選擇 UTF-8 或十六進位模式,然後輸入精確的位元組,不加額外格式。
- 3.產生標籤並複製十六進位或標準 Base64 形式;僅在協定明確要求時才進行轉換或截斷。
關於HMAC 生成器
HMAC 產生器使用 SHA-256、SHA-384 或 SHA-512 計算帶金鑰的訊息認證碼。輸入秘密金鑰與訊息為 UTF-8 文字或精確的十六進位位元組,選擇雜湊演演算法,即可取得完整標籤,以小寫十六進位格式與標準填充 Base64 顯示。此操作使用瀏覽器的 Web Cryptography API,不會將輸入資料傳送至網站伺服器。
HMAC 將加密雜湊與共享的機密金鑰結合。擁有相同金鑰與精確訊息的驗證者可計算出相同的標籤,用以檢測訊息是否被修改,並驗證知道該金鑰的對方。HMAC 並不會隱藏訊息。任何看到明文的人都可以讀取內容,而任何得知金鑰的人都能偽造有效的標籤。
位元組識別度至關重要。文字模式會將兩個欄位皆以 UTF-8 編碼,因此帶有重音符號的字母、CJK 字元與表情符號會佔用多個位元組。十六進位模式僅接受偶數個十六進位數字,並保留每個位元組,包括零。它會拒絕字首、空白字元、冒號與奇數的半字元,以防止意外的格式化字元靜默地改變協定值。
所選取的雜湊演算法會改變標籤長度:SHA-256 會產生 32 位元組,SHA-384 會產生 48,SHA-512 會產生 64。本頁面始終顯示完整輸出。某些協議可能需要截斷、加上演算法識別碼、標準請求字串、二進位包裝或 Base64url 格式,而非標準 Base64。僅根據協議規範套用這些規則;不要憑眼力修剪標籤。
金鑰處理決定了安全性。應使用獨立產生的高熵金鑰資料,符合協定需求,透過受保護的通路分發,按用途分離金鑰,一旦遭入侵即應輪替,並在伺服器上使用常數時間函式比對標籤。人類密碼並非自動等同於強健的 HMAC 金鑰。當必須將密碼轉為金鑰時,應使用應用程式要求的精確密碼匯出方案與引數。
本頁面將每個解碼欄位限制為 1,000,000 位元組。非同步作業會帶有身份標記,因此在 Web Crypto 執行期間更改輸入,可避免舊結果覆蓋新狀態。空的金鑰與訊息會被此介面拒絕,以防止誤觸,即使某些低層標準可能對零長度資料有明確定義。
正確性僅依據八個完整符合 RFC 4231 的標籤驗證。這些案例涵蓋短金鑰、二進位重複位元組金鑰與資料、金鑰小於雜湊長度,以及資料跨越雜湊區塊邊界的情況。SHA-256 與 SHA-512 針對四個獨立輸入進行驗證,同時介面也提供 WebCrypto 定義的 SHA-384 選項。
請在確認協議中確切的位元組與演算法後,再使用產生器。建議在公開向量與二進位欄位使用十六進位模式。比較完整標籤時請使用所需編碼,避免將生產金鑰貼到不受信任的裝置上,並記住成功協議僅證明共用金鑰與位元組一致性,並非訊息保密性。十六進位與 Base64 僅為相同標籤位元組的呈現方式。本頁不會發出 Base64url,也不會預先加入演算法識別碼或將訊息與其標籤打包。請依照協議儲存與傳輸每個欄位,因為視覺上相似的編碼無法互換,解碼它們會產生不同的位元組。
方法與來源
所選的位元組會作為非匯出的 WebCrypto HMAC 金鑰匯入,使用 SHA-256、SHA-384 或 SHA-512。subtle.sign 會返回完整標籤,該標籤會獨立以小寫十六進位與補位的 Base64 形式呈現。
常見問題
- HMAC 會加密我的訊息嗎?
- 不會。它會以共享金鑰驗證精確的訊息位元組,但不會隱藏訊息內容。
- 為何我的 HMAC 與另一工具的結果不同?
- 請檢查雜湊值、金鑰位元組、訊息編碼、空白字元、換行規則、標籤截斷,以及對方系統是否使用 Base64url。
- 我可以使用密碼作為金鑰嗎?
- 人類密碼通常熵值較低。應使用協定要求的密碼匯出函式(KDF)或產生的機密金鑰,而不是自行設計。
相關工具
- JWT 產生器產生一個緊湊的 HS256 JWT,使用嚴格的 JSON 說明,並以標準化的 base64url 編碼與瀏覽器原生的 HMAC-SHA-256 簽署。
- 校驗和計算器從 UTF-8 文字或十六進位位元組計算明確的 XOR-8 BCC、Modbus ASCII 二補數 LRC,以及 256 位元組總和模運算值。
- CRC32 迷你計算器計算 32/ISO-HDLC 從 UTF-8 文字或明確的十六進位位元組,使用固定引數與八位數結果。
- AES 線上加密完全在瀏覽器中把文字加密為可攜、具驗證能力的 AES-256-GCM JSON 封裝,或使用密碼解密封裝。
- A1Z26 字母數字密碼轉換器把英文字母轉為明確的 A=1 至 Z=26 益智格式,並在不混淆單字邊界的情況下解碼經驗證的數字組。
- ASCII 轉換器將標準 7 位 ASCII 文字轉換為十進位碼,或將十進位碼解碼為精確的 ASCII 字元本機執行。
編碼與加密 使用指南
查看全部- HMAC-SHA256 Tag Generator: Hex and Base64 Guide (英文原文)
- How to Generate an HMAC-SHA256 Signature: Byte-Exact Steps (英文原文)
- Generate an HMAC Secret Key and Tag in Java (英文原文)
- How to Generate an HMAC: SHA-256, SHA-384 and SHA-512 (英文原文)
- Compare Approaches to Use a ROT47 Encoder Decoder (英文原文)
- Rail Fence Cipher Decoder Alternative for Exact Text (英文原文)
- Convert Punycode to Unicode: Read xn-- Labels (英文原文)
- Check Password Strength in Python Without the Regex Trap (英文原文)
- Translate Morse Code to English: A Practical Workflow (英文原文)
- HTML Escape Cheat Sheet: Reserved Characters (英文原文)
- Hill Cipher Decoder Alternative: Skip the Matrix Math (英文原文)
- Convert Hex Format to Text: A Strict UTF-8 Workflow (英文原文)
- Convert File to Base64 for C# Code: Local Browser Steps (英文原文)
- Calculate CRC32 Checksum and Match the 8 Hex Digits (英文原文)
- BCC Checksum API Alternative: Compute Locally (英文原文)
- Caesar Cipher Decoder API Alternative Without Signup (英文原文)
- Binary to Text Encoding: A UTF-8 Guide (英文原文)
- Base64 to Hex Cheat Sheet: RFC 4648 Quick Reference (英文原文)
- Base58 Decode: Command Line vs Browser (英文原文)
- Decode Base32 in C#: Browser Tool or Library (英文原文)