HMAC 產生器(瀏覽器內 HMAC-SHA256)

這是一個無網路傳輸的 HMAC SHA256 產生頁面,可快速計算 HMAC 與驗證簽章。

所有處理都只在你的瀏覽器本機執行。金鑰與訊息不會被傳送或儲存。

本機計算 不儲存 Hex 與 Base64
不會經過網路傳輸

使用方式(HMAC 簽章產生方法)

  1. 輸入金鑰。若 API 規格提供的是二進位金鑰位元組,請選擇 Hex 或 Base64 輸入格式。
  2. 輸入要簽章的訊息內容。
  3. 選擇輸出格式(Hex / Base64 / Base64URL),再複製結果。
HMAC 計算的是位元組,不是畫面上看到的文字。UTF-8 編碼、換行差異與額外空白都會改變結果。

範例(測試向量)

範例 1(簡短確認)

輸入: Key = secret(UTF-8),Message = message(UTF-8)

HMAC-SHA256(Hex):
8b5f48702995c1598c573db1e21866a9b825d4a794d169d7060a03605796360b

HMAC-SHA256(Base64):
i19IcCmVwVmMVz2x4hhmqbgl1KeU0WnXBgoDYFeWNgs=

範例 2(常見片語)

輸入: Key = key,Message = The quick brown fox jumps over the lazy dog

Hex:
f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8

Base64:
97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg=

常見陷阱

  • LF 與 CRLF 換行差異會產生不同簽章。
  • 移除前後空白可能導致 API 簽章比對失敗。
  • Base64URL 通常代表把 + 換成 -、把 / 換成 _,並省略 = 補位。請確認你的 API 規格。
  • 若金鑰是以 Hex / Base64 位元組形式提供,卻當成一般文字處理,就會出現不一致。

FAQ

我的金鑰會被儲存嗎?

不會。此工具只會在你的瀏覽器中計算,不會將金鑰或訊息傳送到任何伺服器。

該用 Base64 還是 Hex?

兩者都很常見。你可以依 API 規格選擇 Hex / Base64 / Base64URL 輸出。

使用的是什麼字元編碼(UTF-8)?

文字輸入會先以 UTF-8 編碼,再進行 HMAC 計算。若是二進位值,請使用 Hex / Base64 輸入。

HMAC 和 SHA-256 雜湊有什麼不同?

SHA-256 是單純的雜湊。HMAC 會加入秘密金鑰,用於訊息驗證。

我的輸出對不起來,該檢查什麼?

請檢查金鑰解讀方式(文字或位元組)、換行處理、空白裁切,以及 Base64URL 規則。

補充說明

什麼是 HMAC?

HMAC 是一種帶有秘密金鑰的訊息驗證碼,使用雜湊函式與共享金鑰計算。

與 SHA-256 的差異

單獨的 SHA-256 沒有秘密金鑰。HMAC-SHA256 需要共享金鑰,因此常用於簽章。

典型用途

例如 API 請求簽章、Webhook 驗證,以及 token 完整性檢查。