開發者 / 簽名
HMAC 產生器(SHA-256、SHA-512)
使用SHA-256、SHA-384、SHA-512或SHA-1,為訊息和密鑰產生HMAC簽章,並以十六進位和Base64格式顯示,用來測試webhook和API簽章。
HMAC 產生器(SHA-256、SHA-512): HMAC會透過雜湊函式將密鑰與訊息結合,因此只有擁有該密鑰的人才能產生相同的簽章。這項運算使用瀏覽器的Web Crypto API,與瀏覽器用於HTTPS的實作相同。密鑰可以是空白;依照HMAC標準定義,空白密鑰會視為由零個位元組組成的密鑰。 全程在瀏覽器中於本機執行,檔案不會上傳至伺服器。
- 分類
- 開發者工具
- 使用次數
- 在瀏覽器中
- 費用
- 免費・免註冊
- 可用狀態
- 可立即使用
全程在瀏覽器中執行
——訊息會以UTF-8文字讀取,完全按照輸入內容處理,包括空格和換行;結尾的換行會改變結果。Stripe和GitHub等服務的Webhooks就是以這種方式使用HMAC-SHA256簽署。
驗證webhook
在進行任何剖析前,先取得原始要求本文,使用共用密鑰計算HMAC,再以固定時間比較法與簽章標頭比對,避免透過處理時間洩漏有多少字元相符。拒絕時間戳記早於幾分鐘前的要求,以防止重放攻擊。
金鑰
長度與雜湊輸出相同的金鑰,例如SHA-256使用32個隨機位元組,即可提供完整強度;更長的金鑰會先經過雜湊縮短。請勿將金鑰放在程式碼儲存庫中,若金鑰洩漏,請立即輪替。
使用方式
- 貼上訊息,內容必須與傳送時完全相同,例如webhook的原始本文。
- 輸入密鑰,可使用文字或十六進位格式,然後選擇雜湊演算法。
- 將十六進位或Base64結果與收到的簽章進行比對。
隱私與限制
訊息和密鑰會留在您的瀏覽器中;不會傳送到任何地方。
相關工具
常見問題
為什麼我的簽章與webhook的簽章不一致?
簽署的訊息必須逐位元組與原始本文完全一致:解析並重新序列化JSON,或少了換行、多了一個換行,都會改變訊息內容。有些服務會將時間戳記和本文一起簽署,例如Stripe的t=…,payload。
HMAC-SHA1仍然安全嗎?
用於HMAC時,HMAC-SHA1目前仍被視為安全;這點不同於SHA-1用於一般雜湊的情況。不過,新系統應使用HMAC-SHA256。
十六進位還是Base64?
這是表示相同位元組的兩種方式,請使用服務顯示的格式。GitHub會使用帶有sha256=前綴的十六進位格式,許多其他服務則使用Base64。
免費工具・使用在瀏覽器中次・免註冊