HMAC ジェネレーターおよびベリファイアー
ブラウザ内で秘密キーを使用して、SHA-256、SHA-384、SHA-512、または SHA-1 の HMAC メッセージ認証コードを生成および検証します。
結果
HMAC (ハッシュベースのメッセージ認証コード) は、SHA-256 などのハッシュ関数を通じて秘密鍵とメッセージを組み合わせる、鍵付き暗号構造です。誰でもメッセージだけから再計算できるプレーン ハッシュとは異なり、HMAC は同じ秘密キーを保持している人だけが再作成できます。これが、HMAC を単なるチェックサムではなく認証コードにする理由です。
これがプレーン ダイジェストとの根本的な違いです。当社独自のハッシュ ジェネレーター ツールは、MD5 や SHA-256 などのキーなしハッシュを計算します。これは、偶発的な破損を検出するのに最適ですが、誰でも同じハッシュを生成できるため、データの作成者については何も証明されません。 HMAC は、整合性 (メッセージが変更されていない) と信頼性 (署名者が共有秘密を知っていた) の両方を証明します。そのため、HMAC は、API リクエストの署名、JWT の HS256/HS384/HS512 アルゴリズム、および TLS レコード認証の背後にある標準の構成要素です。
実際の最も一般的な使用例は、Webhook 署名の検証です。 Stripe、GitHub、Shopify などのサービスは、構成したシークレットを使用して HMAC-SHA256 ですべての Webhook ペイロードに署名し、結果の署名をリクエスト ヘッダーで送信します。サーバーは、同じシークレットを使用して生のペイロードに対して HMAC を再計算し、ヘッダー値と比較することが期待されます。それらが一致する場合、リクエストは本当にそのサービスからのものであり、転送中に改ざんされていないことがわかります。このツールの検証モードは、そのチェックを正確に再現します。ペイロード、共有秘密、受信した署名を貼り付けて、一致または不一致を瞬時に取得します。
すべてはブラウザーのネイティブ Web Crypto API (crypto.subtle.importKey および crypto.subtle.sign) を通じてローカルで実行されるため、秘密キー、メッセージ本文、および結果の署名がコンピューターから離れることはありません。サーバーには何もアップロードされません。HMAC シークレットは、ログを記録できるランダムなオンライン ツールに決して貼り付けるべきではない種類の値であるため、これが重要です。