Webhook 簽章驗證器
驗證 GitHub、Stripe、Slack、Shopify 與 Standard Webhooks 簽章,並找出失敗原因
輸入
只保留在記憶體中,絕不會被儲存、記錄或傳送。
每行一個「名稱: 值」,或一個 JSON 物件。名稱不區分大小寫。
必要標頭
X-Hub-Signature-256缺少
文字方塊會把 CRLF 換行轉成 LF。若精確位元組很重要,請以 Hex 或 Base64 貼上本文,或從檔案載入。
貼上原始 HTTP 請求
請求列、標頭、一個空行,然後是本文。
結果
詳細資料
驗證器檢查什麼
貼上一次 Webhook 傳送(簽章金鑰、標頭與精確的原始本文),即可依各供應商自己的規則重新計算簽章:GitHub 的 X-Hub-Signature-256、包含請求時間戳記的 Slack v0 簽章、Shopify 的 Base64 HMAC、Stripe 的 t= 與 v1= 簽章(金鑰輪替期間任一 v1 相符即可)、Standard Webhooks 與 Svix 的 webhook-id、webhook-timestamp 與 webhook-signature,以及可自訂的通用 HMAC。簽章有效性與時間戳記新鮮度會分開回報。
驗證為何失敗
簽章涵蓋的是精確位元組。簽章不相符時,驗證器會套用常見錯誤重新計算,並指出第一個相符的原因:結尾換行被加上或遺失、CRLF 與 LF 互轉、JSON 經解析後重新序列化、金鑰前後有空白、whsec_ 金鑰未經 Base64 解碼就使用,或屬於其他供應商方案。缺少的標頭、格式錯誤的簽章,以及過舊或在未來的時間戳記都會各自列出。
精確位元組
驗證一律使用原始本文,格式化預覽僅供顯示。文字方塊會把 CRLF 換行轉成 LF,因此在精確位元組很重要時,請以 Hex 或 Base64 貼上本文,或從檔案載入。可接受最大 5 MB 的本文與 64 KB 的金鑰。
隱私與限制
所有處理都在瀏覽器中以 Web Crypto 完成。金鑰只保留在記憶體中,絕不會被儲存、放入 URL、記錄或傳送;只會記住供應商與容許範圍。本工具不會重送請求或聯絡供應商,也不驗證 Standard Webhooks v1a(Ed25519)等非對稱簽章。
