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 ジェネレーター の使い方

  1. サービスが使うハッシュアルゴリズムを選ぶ(SHA-256 が最も一般的)
  2. 認証したいメッセージを入力するか貼り付ける
  3. シークレットキーを入力し、その形式に合わせて UTF-8 か Hex を選ぶ
  4. 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 です。

よくあるエラーとトラブルシューティング

よくある質問

この 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 ツール