> hmac | 認証 | 署名 <

// 秘密鍵でHMACメッセージ認証コードを生成

[安全]

Web Crypto API

ブラウザネイティブのWeb Crypto APIを使用して安全にHMACを生成。データはブラウザから出ません。

[マルチ]

4つのハッシュアルゴリズム

HMAC-SHA256、HMAC-SHA1、HMAC-SHA384、HMAC-SHA512に対応。用途に合ったアルゴリズムを選択。

[無料]

ローカル処理

100%クライアント側処理。サーバーへの送信なし、データ収集なし、完全無料。

// HMACについて

HMACの仕組み:

HMAC(Hash-based Message Authentication Code)はRFC 2104で定義されています。暗号化ハッシュ関数と秘密鍵を組み合わせてメッセージ認証コードを生成します。内部・外部パディング(ipad/opad)を使用します。

例:

HMAC-SHA256("Hello", "secret") → 88aab3ede8d3adf94d26ab90d3bafd4a2083070c3bcce9c014ee04a443847c0b

主な用途:

  • >APIリクエストの認証と署名検証
  • >Webhookペイロードの検証
  • >JSON Web Token(JWT)の署名
  • >メッセージ整合性の検証
  • >安全なセッショントークンの生成

>> よくある質問

Q: HMACとは何ですか?

A: HMAC(Hash-based Message Authentication Code)は、暗号化ハッシュ関数と秘密鍵を組み合わせてメッセージ認証コードを計算する仕組みです。

Q: HMACと通常のハッシュの違いは?

A: 通常のハッシュ(SHA-256)はデータ整合性のみ提供します。HMACは秘密鍵を追加し、鍵を知る当事者のみがコードを生成・検証できます。

Q: API署名検証でのHMACの使い方は?

A: 多くのAPI(AWS、Stripe、GitHub)がHMACを使用してリクエストに署名します。送信者は共有秘密鍵でリクエストボディのHMACを計算します。

Q: どのHMACアルゴリズムを使うべきですか?

A: HMAC-SHA256が一般的に最も推奨されています。HMAC-SHA1はレガシーシステムでまだ使われています。HMAC-SHA384とHMAC-SHA512はより高いセキュリティを提供します。

Q: 秘密鍵の長さはどのくらいが良いですか?

A: 秘密鍵はハッシュ出力以上の長さが必要です(例: HMAC-SHA256の場合は32バイト)。短い鍵はセキュリティを低下させます。

// 他の言語