本工具計算什麼
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
如何計算與比較
- 在訊息內容中輸入要驗證的文字。工具使用其 UTF-8 位元組,不移除空格,也不改變換行。
- 輸入金鑰並選擇金鑰編碼。UTF-8 將金鑰視為文字;Hex(十六進位)將每兩個十六進位字元解析為一個位元組,不接受空格或奇數個字元。
- 選擇 HMAC-SHA-256、HMAC-SHA-384 或 HMAC-SHA-512,再按產生雜湊。HMAC 不會自動計算;修改訊息、金鑰、編碼或演算法後,必須重新產生結果。
- 請使用相同訊息位元組、金鑰位元組與 HMAC 演算法算出的參考值進行核對。SHA-256、SHA-384、SHA-512 的完整結果分別為 64、96、128 個十六進位字元。
- 複製或下載結果後,按清除,移除表單中的訊息、金鑰與計算結果。
範例使用 RFC 4231 的公開測試資料與 UTF-8 金鑰 Jefe,不能將它當作應用程式的私有金鑰。TXT、CSV 匯出只包含演算法與 HMAC 值,不包含訊息或金鑰。本頁一次處理一筆文字訊息,不支援檔案 HMAC 或逐行 HMAC。
限制、隱私與下一步
訊息的 UTF-8 資料上限為 10 MiB,解碼後的金鑰上限同樣為 10 MiB;Hex 編碼每個位元組需要兩個十六進位字元。HMAC 在 Web Worker 中計算,可以取消。金鑰不會寫入瀏覽器儲存空間,也不會進入 URL 或匯出檔案。使用完畢後請清除表單;釋放瀏覽器記憶體不等於經過認證的安全抹除。正常的頁面與資源請求仍會傳送至託管伺服器。