🔑 HMAC生成
メッセージと秘密鍵から HMAC(鍵付きハッシュ)を計算します。HMAC-SHA-1 / SHA-256 / SHA-384 / SHA-512 に対応し、16進(大文字・小文字)と Base64 を併記。API リクエストの署名や Webhook の検証にそのまま使えます。
入力
HMAC値 (HMAC-SHA-256)
16進
Base64
※ 計算はすべてブラウザ内(標準の Web Crypto API:crypto.subtle.importKey + sign)で行い、秘密鍵もメッセージもサーバーに送信しません。鍵・本文は UTF-8 でバイト列化します。HMAC は秘密鍵を知る相手だけが同じ値を再現できる「鍵付き」のハッシュで、鍵を持たない第三者は正しい値を作れません。
HMAC とは・使いどころ
HMAC(Hash-based Message Authentication Code)は、メッセージと秘密鍵の2つを材料にハッシュ値を作る仕組みです。単なる SHA-256 などのハッシュは本文だけから決まるため、本文を書き換えた人がハッシュも計算し直せてしまいます。HMAC は秘密鍵を混ぜるため、鍵を知らない第三者は正しい値を作れません。これにより「本文が改ざんされていないこと」と「送り主が鍵を共有した本人であること」を同時に確かめられます。
- API リクエストの署名:本文やタイムスタンプを鍵で HMAC 化し、ヘッダーに付けて送る(AWS SigV4、各種 Web API の署名方式など)。
- Webhook の検証:GitHub / Stripe などが送る署名ヘッダー(例
X-Hub-Signature-256)を、自分の鍵で計算した HMAC と突き合わせて正当な送信元か確認する。 - 改ざん検知:保存・転送するデータに HMAC を添え、受信側で再計算して一致を確認する。