0

HMAC生成・検証ツール

ブラウザ上で完結する、秘密鍵を用いたHMACメッセージ認証コードの生成と検証。SHA-256、SHA-384、SHA-512、SHA-1に対応。

🔒 ブラウザ内で完全に処理されます。ここに入力した内容はアップロードされません。

処理中... 0%
鍵をインポート中
HMACを計算中
完了

結果

HMAC(Hash-based Message Authentication Code)は、秘密鍵とメッセージをSHA-256などのハッシュ関数で組み合わせる鍵付き暗号構造です。メッセージだけから誰でも再計算できる単純なハッシュとは異なり、HMACは同じ秘密鍵を持つ者だけが再現できます。これが、単なるチェックサムではなく認証コードである理由です。

これが単純なダイジェストとの根本的な違いです。当社のハッシュ生成ツールはMD5やSHA-256のような鍵なしハッシュを計算し、偶発的な破損の検出には優れていますが、誰がデータを生成したかは証明できません。誰でも同じハッシュを生成できるからです。HMACは、完全性(メッセージが改ざんされていないこと)と真正性(署名者が共有秘密を知っていること)の両方を証明します。そのため、HMACはAPIリクエスト署名、JWTのHS256/HS384/HS512アルゴリズム、TLSレコード認証の背後にある標準的な構成要素となっています。

最も一般的な実用例は、Webhook署名の検証です。Stripe、GitHub、Shopifyなどのサービスは、設定した秘密鍵を使ってすべてのWebhookペイロードをHMAC-SHA256で署名し、その署名をリクエストヘッダーで送信します。サーバーは、生のペイロードに対して同じ秘密鍵でHMACを再計算し、ヘッダーの値と比較することが期待されます。一致すれば、そのリクエストが本当にそのサービスから来たものであり、転送中に改ざんされていないことが確認できます。このツールの検証モードはまさにこのチェックを再現します。ペイロード、共有秘密鍵、受け取った署名を貼り付けるだけで、即座に一致または不一致が判定されます。

すべての処理はブラウザのネイティブWeb Crypto API(crypto.subtle.importKeyおよびcrypto.subtle.sign)を通じてローカルで実行されるため、秘密鍵、メッセージ本文、および生成された署名がマシンから外部に出ることは一切ありません。サーバーにアップロードされることもありません。HMAC秘密鍵は、ログを記録する可能性のある無作為なオンラインツールに絶対に貼り付けるべき類のものだからです。