HMAC
HMAC(Hash-Based Message Authentication Code)
暗号学的ハッシュ関数と秘密鍵を組み合わせてメッセージ認証コードを作成する特定の構成法で、データの完全性と真正性の両方を検証します。
技術的詳細
HMAC(RFC 2104)は次のように計算します:HMAC(K, m) = H((K' XOR opad) || H((K' XOR ipad) || m))。ここでHはハッシュ関数(SHA-256)、K'はブロックサイズにパディングされた鍵、ipadは0x36の繰り返し、opadは0x5cの繰り返しです。この二重ハッシュ構成は、単純なhash(key || message)に影響する長さ拡張攻撃を防止します。HMAC-SHA256はJWT署名、API認証(AWS Signature V4)、Webhook検証(Stripe、GitHub)、鍵導出(HKDF)で使用されています。Web Crypto APIはsubtle.sign()とsubtle.verify()を通じてHMACをサポートしています。タイミングサイドチャネル攻撃を防止するため、HMAC検証時のタイミングセーフな比較が重要です。
例
```javascript
// HMAC — Web Crypto API example
const data = new TextEncoder().encode('sensitive data');
const hash = await crypto.subtle.digest('SHA-256', data);
const hex = Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0')).join('');
```
関連ツール
P
Password Generator
P
Password Strength Checker
H
Hash Generator
H
HMAC Generator
A
AES Encrypt / Decrypt
R
Random String Generator
C
CSP Header Generator
T
Text Redactor
C
CORS Header Generator
S
SRI Hash Generator
B
Base64 Encoder / Decoder
J
JWT Decoder
U
UUID Generator
T
TOTP Configurator
S
SSL Certificate Decoder