免費註冊

HMAC 簽名生成

用金鑰給訊息簽名,得到 Hex 或 Base64 格式的 HMAC。

關於HMAC 簽名生成

HMAC 簽名生成用來核對介面簽名:支付介面、雲服務 API、釘釘群機器人的加簽、GitHub Webhook 回撥,都用 HMAC(多數是 HMAC-SHA256)證明請求沒被篡改。簽名對不上時,把待簽名字串和金鑰填進來,算出的結果和你的程式碼、對方文件裡的示例一比,就知道問題出在哪一邊。

金鑰可以按文字、Hex 或 Base64 填寫,各家平臺給的金鑰格式不一樣;雜湊演算法可選 SHA-256、SHA-1、SHA-384、SHA-512 和 MD5;結果輸出 Hex 或 Base64,和對方要求的格式對上即可。簽名不一致,十有八九是待簽名字串不同:引數順序、多出來的換行、URL 編碼或者字元編碼。計算全部在瀏覽器裡完成,金鑰不會離開你的裝置。

HMAC 簽名生成怎麼用

  1. 1
    填待簽名字串

    貼上要簽名的原文,末尾不要多出空格或換行。

  2. 2
    填金鑰

    輸入金鑰,並選它是文字、Hex 還是 Base64。

  3. 3
    選演算法

    一般用 SHA-256,也可以選 SHA-1、SHA-384、SHA-512 或 MD5。

  4. 4
    複製簽名

    選 Hex 或 Base64 輸出,和期望的簽名對比。

為什麼用熊仔工匠

  • 五種雜湊演算法

    HMAC-SHA256、HMAC-SHA1、HMAC-SHA384、HMAC-SHA512、HMAC-MD5。

  • 金鑰格式靈活

    文字、Hex、Base64 三種寫法都能直接填。

  • 兩種輸出格式

    Hex 或 Base64,按介面要求選。

  • 金鑰不外傳

    在瀏覽器裡計算,不上傳也不儲存。

常見問題

HMAC 簽名生成常見問題

HMAC 簽名是什麼意思?
用金鑰和雜湊函式對訊息算出的簽名。只有拿到同一個金鑰才能算出同樣的值,接收方據此判斷訊息是真的、沒被改過。
算出的簽名和介面要求的不一樣怎麼辦?
先逐字核對待簽名字串,引數順序、空格、換行、URL 編碼都會改變結果;再確認金鑰是按文字、Hex 還是 Base64 填的,以及對方要的是 Hex 還是 Base64。把兩個字串放進文字 Hex 編碼轉換,看不見的空格、換行一目瞭然。
HMAC-SHA256 和 SHA-256 一樣嗎?
不一樣。SHA-256 只對訊息做雜湊,HMAC-SHA256 按固定的方式把金鑰混進去計算。把金鑰直接拼在文字後面再算 SHA-256,得到的是另一個值。只要不帶金鑰的 SHA-256,用雜湊加密 MD5 / SHA即可。
平臺給的金鑰是 Base64,要先解碼嗎?
不用。金鑰格式選 Base64,就會按解碼後的位元組參與計算;如果當成普通文字填,算出的簽名就不一樣了。
金鑰放在這裡安全嗎?
安全。HMAC 在你的瀏覽器裡計算,不上傳、不儲存,金鑰不會到我們的伺服器。
把HMAC 簽名生成分享給朋友開啟瀏覽器就能用,對方不註冊也能先試。

相關工具

HASH 雜湊加密 MD5 / SHA一次算出文字的 MD5、SHA-1、SHA-256、SHA-512 和 SM3。
TIME Unix 時間戳轉換Unix 時間戳與日期時間互轉,同時顯示本地時間和 UTC。
U+UNI Unicode 編碼轉換文字與 \u 轉義、&#; 編碼、U+ 碼點、UTF-8 位元組互轉。
AES AES 加密解密用 AES(GCM、CBC、CTR 模式)加密或解密文字。
&;HTML HTML 實體編碼轉換把文字轉成 HTML 實體,或把實體還原成文字。
JWT JWT 解析解析 JWT 的頭部和載荷,檢查過期時間和簽名。
01BIN 進位制轉換數字在二進位制、八進位制、十進位制、十六進位制等進位制之間轉換。
BASE Base32 / Base58 編碼Base32、Base58、Base85、Base16 的編碼與解碼。