コンテンツへスキップ
uencoder

HMAC を生成してメッセージの真正性を検証する

メッセージのキー付きハッシュ(HMAC)を計算して、秘密鍵を共有する相手から送られたことを証明し、受け取った HMAC を検証します。

  1. 1

    HMAC は秘密鍵とハッシュ関数を組み合わせて、整合性と真正性の両方を証明するタグを生成します。同じ鍵を持つ人だけがタグを生成・検証できます。Webhook、API 署名、JWT HS256 で使われています。

  2. 2
    HMAC ジェネレーター →

    メッセージと秘密鍵を入力し、ハッシュアルゴリズム(SHA-256 推奨)を選択します。ツールは HMAC タグを hex または Base64 で出力します。

  3. 3

    署名と検証のチェーンを使います。メッセージに署名し、正しいメッセージと改ざんされたメッセージの両方で検証して、成功/失敗を一度に確認します。

  4. 4

    受信した Webhook を検証する際は、生のリクエストボディに対して共有シークレットで HMAC を再計算し、定数時間で比較してください。== はタイミング攻撃に対して脆弱なので、決して使わないでください。

よくある質問

HMAC と電子署名の違いは?
HMAC は共有秘密鍵を使います。送信者と受信者の両方が署名できるため、鍵を持つ相手に対してのみ真正性を証明します。電子署名は非対称鍵を使い、秘密鍵の保持者だけが署名でき、公開鍵を持つ誰もが検証できます。
HMAC にはどのハッシュアルゴリズムを使うべきですか?
SHA-256 が現代のデフォルトです。SHA-1 は非推奨ですが、HMAC-SHA1 は依然として安全と考えられています(HMAC の構造が SHA-1 の衝突の弱点を防ぐため)。新しいシステムでは MD5 ベースの HMAC を避けてください。

このタスクを解決するワークフロー

関連ツール