HMAC ジェネレーター オンライン
メッセージとシークレットキーから、SHA-256・SHA-1・SHA-384・SHA-512 で HMAC 署名を生成できます。すべてブラウザ内で動作し、キーは端末上に留まります。
HMAC ジェネレーターは、Web Crypto API を使って完全にブラウザ内で動作します。署名するメッセージと入力するシークレットキーは端末から外に出ることはなく、ArrayKit にアップロードされることもありません。
ハッシュジェネレーターを開く
HMAC ジェネレーター について
HMAC ジェネレーターは、メッセージをシークレットキーで署名してキー付きハッシュ — API や Webhook がペイロードが改ざんされていないことを証明するために使うのと同じ認証コード — を生成します。メッセージとシークレットを入力または貼り付け、SHA-256・SHA-1・SHA-384・SHA-512 を選ぶと、署名が hex と Base64 の両方で返されます。キーはプレーンな UTF-8 テキストでも hex エンコードされたバイト列でもよいので、サーバーが期待するものに合わせられます。Webhook 署名を検証する、署名付きリクエストヘッダーを配線する、API の HMAC スキームをテストする、ライブラリの出力と値を照合する開発者のために作られています。すべて Web Crypto API を使って端末上で計算され、メッセージとシークレットキーがブラウザから外に出ることはありません。
機能
- 任意のメッセージをシークレットキーで署名し、HMAC を即座に読む
- SHA-256・SHA-1・SHA-384・SHA-512 のハッシュ関数を切り替え
- 署名を小文字の hex と標準の Base64 で並べて表示
- シークレットキーを UTF-8 テキストまたは hex エンコードのバイト列として入力
- サーバー側やライブラリの HMAC 出力とバイト単位で一致
- hex または Base64 の署名をワンクリックでコピー
- hex キーの桁数が奇数、または非 hex 文字を含むとき明確なエラー
- Web Crypto API を使って端末上で動作し、何もアップロードされない
HMAC ジェネレーター の使い方
- サービスが使うハッシュアルゴリズムを選ぶ(SHA-256 が最も一般的)
- 認証したいメッセージを入力するか貼り付ける
- シークレットキーを入力し、その形式に合わせて UTF-8 か Hex を選ぶ
- HMAC を hex または Base64 で読み、必要な値をコピーする
例
入力
message: The quick brown fox jumps over the lazy dog
key: key (UTF-8)
algorithm: SHA-256
出力
hex: f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8
base64: 97yD9DBThCSxMpjmqm+xQ+9NWaFJRhdZl0edvC0aPNg=
"key" でキー付けした、おなじみのキツネの文の HMAC-SHA256 です。
よくあるエラーとトラブルシューティング
- 署名がサーバーの生成するものと一致しない。 — 同じハッシュ(SHA-256 か SHA-1 か)と同じキー形式を選んだか確認してください。a0b1c2 のようなキーは、生の UTF-8 テキストとしてと hex バイトとしてでは異なります — サーバーの読み方に合わせて Hex トグルを切り替えてください。
- エラー:Hex key must have an even number of digits。 — Hex キーモードでは各バイトが 2 つの hex 文字なので、キーの長さは偶数でなければなりません。はぐれた文字を取り除くか、抜けた桁を追加するか、キーが本当にテキストなら UTF-8 モードに切り替えてください。
- API が署名を Base64 で求めているが、私は hex しか持っていない。 — 何も変換する必要はありません — このツールは同じ署名を hex と Base64 の両方で表示します。2 行目から Base64 の値を直接コピーしてください。
- 末尾の改行やスペースが結果を変える。 — HMAC はメッセージのすべてのバイトを対象にするので、末尾の改行やスペースは異なるコードを生みます。サービスが送るのと正確なバイトを、余分な空白なしで署名してください。
よくある質問
- この HMAC ジェネレーターは何を計算しますか?
- キー付きハッシュメッセージ認証コードを計算します:メッセージをシークレットキーとともにハッシュ関数(SHA-256・SHA-1・SHA-384・SHA-512)の下で組み合わせ、できた署名を hex と Base64 で返します。同じキーを持つ人は誰でも再計算してメッセージを検証できます。
- キーは UTF-8 と hex のどちらで入力すべきですか?
- サービスのキーの保存方法に合わせてください。シークレットが通常の文字列やパスフレーズなら UTF-8 を使います。hex バイトの列(ランダム生成のキーでよくあります)なら Hex に切り替えて、まったく同じバイトが使われるようにしてください — 2 つは異なる署名を生みます。
- どの HMAC アルゴリズムを選ぶべきですか?
- HMAC-SHA256 が多くの API や Webhook の既定です。より長い署名には SHA-384 や SHA-512 を、古いシステムと一致させる必要があるときだけ SHA-1 を選んでください。SHA-1 は新しい設計では弱いと見なされています。
- これで Webhook 署名をどう検証しますか?
- 生の Webhook ペイロードをメッセージとして貼り付け、共有の署名シークレットをキーとして入力し、プロバイダーが文書化しているアルゴリズムを選び、hex または Base64 の出力を、送られてきた署名ヘッダーと比較してください。一致すれば、ペイロードが本物で改変されていないことが確認できます。
- 私のメッセージやシークレットキーはどこかにアップロードされますか?
- いいえ。HMAC は Web Crypto API を使ってブラウザ内で計算されます。署名するメッセージと入力するシークレットキーは端末から外に出ることはなく、ArrayKit やいかなるサーバーにも送られません。
- なぜ出力は hex と Base64 の両方なのですか?
- サービスによって同じ HMAC バイトを異なる形でエンコードします — ヘッダーによっては小文字の hex を、別のものは Base64 を使います。このツールは同一の署名の両方のエンコードを表示するので、手作業で変換せずに API が期待する形式をコピーできます。
関連ツール
すべての ArrayKit ツール