メッセージと秘密鍵からHMAC-SHA1/SHA-256/SHA-512を計算
「メッセージ」欄に署名したいデータを、「秘密鍵」欄に送信者と受信者で共有するシークレットキーを入力すると、HMAC(ハッシュベースのメッセージ認証コード)を自動で計算します。ハッシュアルゴリズムはHMAC-SHA256(既定)・HMAC-SHA1・HMAC-SHA512から選べ、結果を16進数(hex)とBase64の両方で同時に表示します。インストールや会員登録は不要で、計算はすべてブラウザ内で完結します。
入力を変更するたびにリアルタイムで再計算されるので、APIリクエストの署名づくりや、Webhookの署名検証のデバッグにそのまま使えます。生成された値は各欄の「コピー」ボタンでクリップボードにコピーできます。メッセージと秘密鍵はUTF-8としてバイト列に変換したうえでHMACを計算します。
REST APIのリクエスト署名の生成・検証、GitHubやStripeなどのWebhookペイロードの署名照合、トークンやメッセージの改ざん検知、簡易的なメッセージ認証の学習・実験などにお使いいただけます。秘密鍵を含む機密データでも、ネットワークに送られずローカルで処理されるため安心して試せます。
HMACは、メッセージと秘密鍵を決められた手順で組み合わせ、SHA-256などのハッシュ関数を2段階で適用して固定長の値を得るアルゴリズムです(RFC 2104で定義)。鍵を知っている人だけが正しいHMACを計算できるため、値が一致すれば「メッセージが改ざんされていない(完全性)」ことと「正しい鍵の持ち主が作った(真正性)」ことを同時に検証できます。単純なハッシュ値と違い、秘密鍵がないと正しい値を偽造できない点が特徴です。
| アルゴリズム | 出力長 | 用途の目安 |
|---|---|---|
| HMAC-SHA1 | 160ビット(hex 40文字) | 互換性目的のみ。新規設計では非推奨 |
| HMAC-SHA256 | 256ビット(hex 64文字) | 一般的な用途で推奨。多くのAPIの標準 |
| HMAC-SHA512 | 512ビット(hex 128文字) | より長い出力が必要な高強度用途 |
HMACの結果は生のバイト列で、そのままでは扱いにくいため、テキストとして表現する際に16進数(hex)またはBase64が使われます。hexは1バイトを2文字の16進数で表す方式で、多くのAPI署名やHTTPヘッダーで小文字表記が使われます。Base64は3バイトを4文字で表す、より短いエンコード方式で、一部のクラウドサービスやWebhook署名で採用されます。どちらも同じHMACを表しているので、利用先の仕様に合わせて選んでください。