WebhookのHMAC署名を手元で確認する
ペイロードとシークレットから署名を再計算し、受け取ったヘッダの値と比較します。
このガイドで使う道具
やりたいこと
WebhookやAPIの仕様に「リクエストボディをHMAC-SHA256で署名しこのヘッダに入れる」とあるとき、サーバを立てず・怪しいサイトにシークレットを貼らずに、手元で署名を再計算して照合したい場面です。
使い方
送信側が作ったペイロードをそのまま(空白も含めて)貼り、共有シークレットを入力し、アルゴリズムを選びます。16進数またはBase64の署名が出ます。期待値を比較欄に貼れば、一致・不一致を目視せず確認できます。
- SHA-256が一般的な既定です。SHA-1・SHA-384・SHA-512も選べます。
- 16進数は大小文字を区別せず比較し、Base64の末尾パディングは任意です。
具体例
メッセージ `The quick brown fox jumps over the lazy dog`・鍵 `key` をHMAC-SHA-256で署名すると `f7bc83f4…eb31e7b9` になり、標準ライブラリと同じ値が出ます。不一致ならツールではなくペイロードか鍵の違いを疑います。
注意点
各入力はUTF-8テキスト50万文字まで。貼ったものをそのまま署名するため、実システムが正規化した形(フィールド整列・ヘッダのトリム等)に署名する場合は先にその形を再現してください。計算はローカルですが、本番のシークレットは信用できる環境以外に貼らないでください。