HMAC生成ツール
HMAC出力
使い方
- 認証したいメッセージテキストを入力します。
- HMAC計算に使用する秘密鍵を入力します。
- ハッシュアルゴリズム(SHA-1、SHA-256、SHA-384、SHA-512)を選択します。
- 入力と同時にリアルタイムでHMACが生成されます。
- コピーボタンでHMACをクリップボードにコピーできます。
HMACとは
HMAC(Hash-based Message Authentication Code)は、メッセージの整合性と信頼性を検証するための仕組みです。秘密鍵とハッシュ関数を組み合わせて一意の署名を生成します。通常のハッシュと異なり、HMACは秘密鍵の知識が必要なため、改ざんに対して耐性があります。
主な用途
- API認証:APIリクエストに署名して送信者の身元を確認(例:Webhook署名)。
- データ整合性:メッセージが送信中に改ざんされていないことを確認。
- トークン生成:セッション管理やパスワードリセットフローのための安全なトークン作成。
- デジタル署名:OAuth、JWT、TLSなどのプロトコルの構成要素として使用。
アルゴリズムの選び方
- HMAC-SHA1:160ビット出力。広くサポートされていますが、SHA-1単体のハッシュとしては脆弱とされています。HMACとしての安全性は保たれていますが、新規プロジェクトではSHA-256を推奨します。
- HMAC-SHA256:256ビット出力。最も推奨される選択肢です。AWS、Stripe、GitHub Webhookなど、ほとんどのモダンAPIで採用されています。
- HMAC-SHA384:384ビット出力。SHA-256よりも高いセキュリティマージンを提供します。政府機関や金融分野で使用されています。
- HMAC-SHA512:512ビット出力。最大のセキュリティ。64ビットシステムではネイティブの64ビット演算により、SHA-256より高速な場合もあります。
セキュリティに関する注意
- 同じ秘密鍵を異なるアプリケーションやサービス間で使い回さないでください。
- ハッシュ出力と同じ長さ以上の暗号学的にランダムな鍵を使用しましょう(例:HMAC-SHA256なら32バイト)。
- タイミング攻撃を防ぐため、HMAC値の比較には必ず定数時間比較関数を使用してください。
- 秘密鍵は厳重に管理しましょう。鍵を持つ人は誰でも有効なHMACを生成できます。
- このツールはテストやデバッグを目的としています。本番環境では各プログラミング言語の暗号ライブラリを使用してください。
プライバシー
すべてのHMAC計算はブラウザ内のWeb Crypto API(crypto.subtle)で完結します。メッセージと秘密鍵がサーバーに送信されることは一切ありません。