HMAC 產生器

使用訊息與明確編碼的金鑰,產生 HMAC-SHA256、HMAC-SHA384 或 HMAC-SHA512。

0 位元組UTF-8 · 不移除空格、不轉換換行

修改後請按「產生雜湊」,此模式不會自動計算。

金鑰僅保留在目前分頁,完成後請清除。空金鑰可用於測試,不能用於實際訊息驗證。

計算結果

輸入訊息與金鑰後按「產生雜湊」。測試時也可以使用空訊息或空金鑰。

在瀏覽器本機處理,不上傳內容。

其他雜湊與校驗工具

本工具計算什麼

HMAC 使用共享金鑰、訊息與雜湊函數計算訊息驗證碼。預設為 HMAC-SHA256,也支援 SHA384 與 SHA512。它不是「把金鑰與訊息串接後做一次雜湊」,也不會加密或隱藏訊息內容。

訊息統一使用 UTF-8。金鑰有獨立編碼選項:UTF-8 將可見字元當作文字,Hex 則把每兩個十六進位字元解讀為一個原始位元組。例如 Hex 金鑰 4a656665 與 UTF-8 金鑰 Jefe 對應相同位元組。Hex 模式拒絕空格、非十六進位字元與奇數位輸入,以免無聲地誤解金鑰。

範例採用 RFC 4231 的公開測試資料,不是為真實業務產生的新金鑰。實作允許空金鑰以重現測試,但空金鑰不具實質保密性。金鑰僅保留於目前分頁記憶體,不加入下載結果,完成後請清除。正式協定的驗證仍應在自己的應用程式採用經過審查的實作。

可核對的範例

HMAC-SHA256 · UTF-8 · Jefe · what do ya want for nothing?

5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843

如何計算與比較

  1. 在訊息內容中輸入要驗證的文字。工具使用其 UTF-8 位元組,不移除空格,也不改變換行。
  2. 輸入金鑰並選擇金鑰編碼。UTF-8 將金鑰視為文字;Hex(十六進位)將每兩個十六進位字元解析為一個位元組,不接受空格或奇數個字元。
  3. 選擇 HMAC-SHA-256、HMAC-SHA-384 或 HMAC-SHA-512,再按產生雜湊。HMAC 不會自動計算;修改訊息、金鑰、編碼或演算法後,必須重新產生結果。
  4. 請使用相同訊息位元組、金鑰位元組與 HMAC 演算法算出的參考值進行核對。SHA-256、SHA-384、SHA-512 的完整結果分別為 64、96、128 個十六進位字元。
  5. 複製或下載結果後,按清除,移除表單中的訊息、金鑰與計算結果。

範例使用 RFC 4231 的公開測試資料與 UTF-8 金鑰 Jefe,不能將它當作應用程式的私有金鑰。TXT、CSV 匯出只包含演算法與 HMAC 值,不包含訊息或金鑰。本頁一次處理一筆文字訊息,不支援檔案 HMAC 或逐行 HMAC。

限制、隱私與下一步

訊息的 UTF-8 資料上限為 10 MiB,解碼後的金鑰上限同樣為 10 MiB;Hex 編碼每個位元組需要兩個十六進位字元。HMAC 在 Web Worker 中計算,可以取消。金鑰不會寫入瀏覽器儲存空間,也不會進入 URL 或匯出檔案。使用完畢後請清除表單;釋放瀏覽器記憶體不等於經過認證的安全抹除。正常的頁面與資源請求仍會傳送至託管伺服器。

相關工具與指南

RFC 4231

常見問題

為什麼修改金鑰後,結果會消失?

修改訊息、金鑰、編碼或演算法會讓舊結果失效,必須再次按「產生雜湊」。HMAC 不會自動計算,避免將舊結果誤認為新輸入的結果。

UTF-8 金鑰 Jefe 與 Hex 金鑰 4a656665 相同嗎?

相同,兩者代表同樣的四個位元組。但在 UTF-8 模式輸入 4a656665,會使用八個文字字元,因此是另一組金鑰位元組。

空金鑰會如何計算?

工具以零位元組金鑰計算標準 HMAC,不會替換成其他金鑰。這可用於重現測試,不適合用來保護或驗證實際業務訊息。

支援檔案 HMAC 或逐行 HMAC 嗎?

不支援。本頁只處理一筆 UTF-8 文字訊息,以及一組 UTF-8 或 Hex 金鑰。檔案與逐行雜湊是另外的無金鑰計算功能。

複製或匯出會包含金鑰嗎?

不會。複製只保留完整 HMAC 值;TXT、CSV 包含識別碼、演算法與結果,不包含訊息原文或金鑰。