HMAC 生成ツール
API 認証、Webhook 署名検証、決済コールバックの調査、リクエスト改ざんチェックに使える HMAC 署名ツールです。テキストとファイルの入力、鍵形式の切り替え、複数アルゴリズムの HMAC、Hex / Base64 出力に対応しています。
- HMAC-MD5、HMAC-SHA1、HMAC-SHA2、HMAC-SHA3、HMAC-Keccak、HMAC-BLAKE2、HMAC-BLAKE3、HMAC-SM3 に対応
- メッセージ文字列とファイル payload のどちらにも署名できます
- テキスト鍵、Hex 鍵、Base64 鍵を切り替えながら扱えます
- lower hex、UPPER HEX、Base64 の署名出力に対応し、API や Webhook ごとの形式に合わせられます
概要
署名の生成から、署名不一致の原因調査まで、HMAC まわりの一連の確認作業を 1 つの画面で進められます。
- 01
複数アルゴリズムの HMAC
SHA-256、SHA-512、SHA3、Keccak、BLAKE、SM3、レガシー互換の選択肢を、同じインターフェースで切り替えられます。
- 02
メッセージとファイルに署名
通常テキスト、JSON payload、Webhook の raw body、canonical string、ローカルファイルに対して HMAC を計算できます。
- 03
ファイルを分割して HMAC 計算
大きなファイルはブラウザ内で分割処理し、時間がかかる処理でも進捗を確認できます。
- 04
鍵形式の切り替え
テキスト鍵、Hex 鍵、Base64 鍵を扱えます。見た目の文字列ではなく、実際のバイト列が一致しているかを確認しやすくなります。
- 05
柔軟な出力エンコード
lower hex、UPPER HEX、Base64 で署名を出力でき、API、Webhook、ストレージサービスごとの署名仕様に合わせられます。
- 06
ローカル分割処理
テキスト、secret、ファイルはブラウザ内で計算されます。大きなファイルも元 payload を外部へ渡さず、ローカルで処理します。
使い方
署名対象、鍵のバイト列、アルゴリズム、出力形式の順にそろえてから、期待値と比較するのが基本です。
- 01
入力タイプを選びます。canonical string や request body にはテキストモード、バイナリ payload の署名にはファイルモードを使います。
- 02
Secret key を入力し、計算前に鍵形式(テキスト / Hex / Base64)が正しいことを確認します。
- 03
バックエンドや連携先プラットフォームが指定している HMAC アルゴリズムを正確に選びます。
- 04
出力形式(Hex または Base64)を選び、生成された署名をコピーしてサーバー側の期待値と比較します。
- 05
検証に失敗した場合は、まず payload の正規化、フィールド順、エンコーディング、改行コード、timestamp の組み立てを確認してください。
詳細
単発の digest 出力ではなく、実際の署名検証フローで使いやすいように作っています。
- HMAC-SHA256、HMAC-SHA512、HMAC-SHA3、HMAC-BLAKE3、HMAC-SM3 をオンラインで生成できます
- API 署名文字列、Webhook payload、決済コールバック検証、署名付き URL の確認に使えます
- テキスト / Hex / Base64 の鍵を、バイト列として一貫した形で扱えます
- プラットフォームごとの署名仕様に合わせて、lower hex、UPPER HEX、Base64 を選べます
- ファイル HMAC は分割処理され、進捗表示とキャンセルに対応しています
- サンプル payload をワンクリックで入力でき、連携確認やデバッグをすぐ始められます
- 長い payload、署名文字列、ファイル確認にも使いやすい全画面ワークスペースと進捗表示を備えています
- 鍵のプライバシーと社内デバッグを考え、計算はすべてブラウザ内で行います
活用シーン
API セキュリティ、外部サービス連携、署名不一致の調査でよく使う確認作業に向いています。
-
API 認証のデバッグ
リクエスト署名を再計算し、フィールド順、エンコーディング、canonicalization の違いを切り分けられます。
-
Webhook 署名検証
受け取った raw callback payload に再署名し、送信元の正当性と payload の完全性を確認できます。
-
決済ゲートウェイ連携
プロバイダーごとの署名ルールに合わせて、リクエスト署名やコールバック署名を検証できます。
-
署名付き URL とストレージアクセス
オブジェクトストレージや CDN のアクセス制御で使われる canonical string の署名を生成・確認できます。
関連情報
共有 secret を使わず、テキストやファイルが変わったかだけを確認したい場合は、 ハッシュジェネレーター を使ってください。Token の header、payload、有効期限、署名構造に関する問題なら、続けて JWT インスペクター を確認できます。署名対象に query string、callback URL、パーセントエンコードのルールが含まれる場合は、HMAC 署名を再計算する前に URL エンコーダー・デコーダー でバイト境界を確認しておくと安全です。
使い方のヒント
HMAC 検証の成否は、バイト単位で同じ入力を作れているかに強く依存します。
- アルゴリズム、raw message bytes、secret key bytes をサーバー実装と必ずそろえてください
- 署名対象が raw body、ソート済み query string、canonical string のどれなのかを明確に定義してください
- 署名前に UTF-8 エンコーディングと改行コードの扱いをそろえてください
- JSON の再整形、trim、自動 URL デコードなど、暗黙の変換を避けてください
- 本番の署名鍵をフロントエンドコード、ログ、スクリーンショットに出さないでください
- 依存ライブラリやフレームワークの更新で挙動が変わっていないか確認できるよう、CI に署名テストベクトルを固定しておくと安心です
制限事項
HMAC の役割を正しく理解しておくと、セキュリティ上の期待を取り違えにくくなります。
- HMAC は鍵付きの完全性確認と送信元確認の仕組みであり、復号できる暗号化ではありません
- このツールは鍵のライフサイクル、ローテーション、安全な保管を管理しません
- サーバー側の署名処理に独自の正規化ステップがある場合は、その入力を完全に再現してから計算してください
- Base64 には標準形式と URL-safe 形式の違いがあるため、連携先プロトコルの仕様を確認してください
- 大きなファイルの署名にかかる時間は、手元の端末性能とブラウザの利用可能リソースに左右されます
よくある質問
使い方、データの扱い、結果の確認、実務上の制限について、よくある質問をまとめました。
HMAC がサーバーの結果と一致しないのはなぜですか?
原因の多くは、canonical string、エンコーディング、フィールド順、鍵の解釈、出力形式のどれかがサーバー側と違っていることです。
テキスト鍵と Hex 鍵は何が違いますか?
テキスト鍵は文字列としてエンコードされます。Hex 鍵は明示的なバイト列を表します。同じ見た目の文字列でも、実際のバイト列は別になることがあります。
Hex ではなく Base64 で出力するのはどんなときですか?
連携先の仕様に従ってください。Webhook 系では Base64 を期待することが多く、API gateway では Hex を使うこともよくあります。
HMAC 計算中にファイルはアップロードされますか?
いいえ。ファイルはブラウザ内で分割処理され、ローカルで計算されます。
HMAC-SHA256 と SHA256 は同じですか?
違います。SHA256 は鍵なしのハッシュです。HMAC-SHA256 は secret key とメッセージを組み合わせ、真正性の確認に使います。
関連ツール
鍵なしの digest にはハッシュ生成ツール、token のデコードや検証には JWT インスペクター、認証情報の強化にはパスワード生成ツールが使えます。