API署名生成ツール
メッセージと秘密鍵から HMAC-SHA256 署名を生成します — AWS 系や汎用の API リクエスト認証スキームで使われるカノニカル文字列の署名パターンです。出力は hex または Base64。
入力
出力
上記のメッセージを秘密鍵で署名した HMAC-SHA256 です。
ガイド
このツールの機能
メッセージ(「署名する文字列」)と秘密鍵から HMAC-SHA256 署名を計算し、結果を hex または Base64 で出力します — AWS Signature V4、多くの webhook 検証スキーム、そして自作の「API リクエストに署名する」認証システムの大半が土台にしている、まさにその構成要素です。
HMAC 署名とは何か、なぜ重要なのか
HMAC(Hash-based Message Authentication Code)は、暗号学的ハッシュ関数 — ここでは SHA-256 — を秘密鍵と組み合わせる方式で、鍵を知る人だけが所定のメッセージに対する有効な署名を生成でき、鍵を持つ人なら誰でも署名を検証できます。API はこれを使って、リクエストが本当に秘密鍵の保持者から来たことと、転送中に内容が改ざんされていないことの2点を同時に証明します。SHA-256 単体では、メッセージだけをハッシュ化すると誰でも同じハッシュを再計算できてしまいます — 秘密鍵があるからこそ偽造できないのです。
典型的な流れ: リクエストの重要な要素(HTTP メソッド、パス、ヘッダー、タイムスタンプ、ボディ — 正確なレシピはプロバイダーごとに異なります)から カノニカル文字列 を作り、その文字列を API シークレットで HMAC 署名し、得られた署名をリクエストに添えて送ります(通常はヘッダーに)。受信サーバーは同じカノニカル文字列を再構築し、保持している鍵で署名して、2つの署名が一致するか確認します。
使い方
- 署名する正確な文字列を 署名する文字列 に貼り付けます — 生のメッセージでも、API プロバイダーの仕様に沿って組み立てたカノニカルリクエスト文字列(メソッド、パス、ヘッダー、タイムスタンプ、ボディを指定の順序で連結したもの)でも構いません。
- 秘密鍵 を入力します。
- 出力に Hex か Base64 を選びます — API プロバイダーのドキュメントでどちらが期待されているか確認してください。
- 署名 をコピーし、リクエストに添えて送信します(通常は
Authorizationまたはカスタムの署名ヘッダー)。
署名は入力に合わせて自動的に更新されます。
FAQ
AWS Signature V4 や特定のベンダーのスキームと正確に一致しますか? このツールは、そうしたスキームの土台となる汎用の HMAC-SHA256 プリミティブを計算するもので、完全なベンダー固有の実装ではありません(AWS SigV4 は、たとえば HMAC-SHA256 の上に複数回の鍵導出と非常に特殊なカノニカルリクエスト形式を重ねています)。プロバイダーが署名用のカノニカル文字列を提供しているなら、その文字列をここに貼り付ければ HMAC は正しく計算されます。導出/ネストされた鍵(SigV4 の署名鍵チェーンなど)が必要な場合、最終的な HMAC の前にその導出ステップを実行する必要があります。
なぜ SHA-256 だけなのですか? SHA-256 は、ほぼすべての現代的な API 署名スキームが標準化しているハッシュ関数です — 既知の実用的な攻撃がなく、強力でよく検証されたデフォルトです。SHA-1 ベースの古いスキームは業界全体で非推奨になりつつあるため、このツールでは提供していません。
Hex と Base64、どちらを使えばいいですか? API が期待している方です。どちらも同じ 32 バイトの署名をエンコードします。hex は2倍の長さですが目視で確認しやすく、Base64 はよりコンパクトです。プロバイダーのドキュメントを確認してください。
受け取った署名の検証に使えますか? はい — 同じメッセージを同じ秘密鍵で署名し、結果を(文字単位で)受け取った署名と比較してください。不一致なら、送信者が使ったメッセージか鍵のどちらかが違うということです。
プライバシー
ブラウザで使用する場合、秘密鍵を含むすべてが JavaScript でローカルに計算され、送信やログ記録は一切行われません。代わりに API 経由でこのツールを呼び出す場合、メッセージと鍵はその1回のリクエストのためだけに処理され、サーバー側でログ記録や保存はされません。それでも、ここに貼り付ける API シークレット(ブラウザ/API のどちらでも)は機密情報として扱い、共有環境やログが残る環境では可能な限り本番キーを使い回さないでください。
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/api-signature-generator \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"message": "message",
"secretKey": "key",
"outputFormat": "hex"
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `api-signature-generator` tool (API Signature Generator) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.