本文へスキップ
にゃんこツール

HMAC署名生成(SHA-256/SHA-512)

メッセージと秘密鍵からHMAC署名を計算します。Webhookの署名検証やAPI認証のデバッグに使えます。ブラウザ内で処理され、鍵やメッセージがサーバーに送信されることはありません。鍵なしのハッシュは ハッシュ生成 をご利用ください。

🔒 ブラウザ内で完結・入力データはサーバーに送信されません

注意事項

  • メッセージは改行や空白を含めて1バイトでも違うと別の署名になります。Webhookでは受信した生のボディをそのまま入力してください(JSONを整形し直さないこと)。
  • HMAC-SHA1はHMACとしては現在も破られていませんが、新規に使うならSHA-256以上を選んでください。
  • 本番の秘密鍵の入力は避け、検証用の鍵で試すことをおすすめします。入力内容は保存・送信されませんが、画面共有などにご注意ください。

用語解説

HMAC

秘密鍵とハッシュ関数を組み合わせて、メッセージの改ざん検知と送信元の確認を行う仕組みです。同じ鍵を持つ者だけが同じ署名を作れます。

Webhook署名

GitHubやStripeなどが通知の正当性を示すため、リクエストボディのHMACをヘッダーに付けて送る方式です。受信側で同じ鍵から計算し直して一致を確認します。

Base64URL

Base64の「+」「/」を「-」「_」に置き換え、末尾の「=」を省いた形式です。URLやJWTの署名部分で使われます。

よくある質問

Webhookの署名が一致しないのはなぜですか?

最も多い原因は、メッセージが受信した生のボディと1バイトでも違うことです。JSONの整形や改行コードの変換、末尾の改行の有無で結果が変わります。また、鍵が16進数かテキストか、署名がBase64か16進数かの取り違えにも注意してください。

鍵が空でも計算できますか?

はい。HMACの仕様上、空の鍵はブロック長ぶんのゼロで埋めた鍵と同じ扱いになるため、空のままでも計算できます。ただし実運用で空の鍵を使うべきではありません。

HMACとハッシュ(SHA-256)の違いは何ですか?

ハッシュは誰でも同じ値を計算できますが、HMACは秘密鍵を知っている人だけが正しい署名を作れます。そのため、改ざん検知だけでなく送信元の確認にも使えます。

MD5のHMACには対応していますか?

いいえ。ブラウザ標準の暗号機能(Web Crypto API)が対応するSHA-1・SHA-256・SHA-384・SHA-512のみ選べます。

このページをシェア

↑↓ 選択 Enter 開く Esc 閉じる