HMAC

シークレット鍵で HMAC を計算:MD5、SHA-1、SHA-256、SHA-384、SHA-512—16 進または Base64 出力をローカルで随時更新。

HMACについて

hidevtool の HMAC は UTF-8 テキストと秘密鍵からメッセージ認証コードを生成します。MD5、SHA-1、SHA-2 系と hex / Base64 出力を選べ、データはアップロードされません。

できること

秘密鍵の役割

秘密はメッセージと一緒にハッシュに混ざります。同じ秘密を知る相手だけが同じ MAC を再計算でき、改ざん検知と「鍵保持者由来」の示唆になります。平文 SHA では誰でも同じ digest を再計算できます。

ハッシュアルゴリズム

  1. HMAC-SHA256 — 現在の API / Webhook で最も一般的。
  2. HMAC-SHA512 / SHA-384 — 仕様が長い MAC を要求するとき。
  3. HMAC-SHA1 — レガシー連携。新設計では避ける。
  4. HMAC-MD5 — 互換のみ。新規 secret や決済には使わない。

メッセージと鍵

  • メッセージも秘密も UTF-8 文字列。典型 SDK 例と同じ。
  • 送受信で alg、鍵、出力エンコーディング(hex / Base64)を一致させる。
  • HMAC は暗号化ではなく、内容は隠れず整合性・由来の検証。

出力エンコーディング

  • Hex — 小文字。ログや JSON フィールド向け。
  • Base64 — 短い。API ドキュメントの指定に合わせる。

安全に使う

  1. 1長くランダムな secret を使う。本番鍵を公開フロントに埋め込まない。
  2. 2新 API は HMAC-SHA256 以上。担当者・ベンダー変更時は鍵をローテーション。
  3. 3サーバーで MAC 比較は定数時間比較を推奨。
  4. 4無関係な製品・環境で同じ secret を使い回さない。
  5. 5パスワード保存は PBKDF2/bcrypt/Argon2 — HMAC 単体ではない。

よくある使い方

API リクエスト署名

ゲートウェイや決済ドキュメント通りに正規化リクエストや body digest に HMAC。

Webhook 検証

エンドポイント secret で HMAC を再計算し X-Hub-Signature 等と照合。

JWT HS* デバッグ

対称鍵 JWT 連携で HMAC-SHA256 署名が正しいか確認。

よくある質問

HMAC は何に使う?
API 署名、Webhook 検証、共有 secret があり改ざんを検知したい場面全般。
なぜ secret が必要?
secret がないと「内容が変わったか」しか分からず「誰が作ったか」は分かりません。secret で検証側は鍵保持者の MAC だけを信頼できます。
どの alg を選ぶ?
既定は HMAC-SHA256。ドキュメントがレガシーで SHA-512、SHA-1、MD5 を指定する場合のみ従う。メッセージ・secret・alg・エンコーディングを変えると結果は自動更新されます。
Hex と Base64?
API 仕様に従う。本ツールは両方対応。ドキュメントでは hex が多く、一部 Header は Base64。
secret はアップロードされる?
いいえ。計算はブラウザ内のみです。