ssecutils

🔏 HMAC Generator

メッセージとシークレットキーから HMAC(Hash-based Message Authentication Code)を計算。Webhook 署名検証・API シグネチャ生成・JWT署名等で使用します。 ブラウザの SubtleCrypto API で計算され、データはサーバーに送信されません。

16 文字 · 16 bytes
13 bytes
アルゴリズム
出力フォーマット
計算中…

💡 HMACについて

  • HMAC(RFC 2104)はメッセージとシークレットキーから一方向ハッシュを計算する仕組み。鍵を知っている人だけが正しい署名を作れるため、メッセージの改ざん検出送信者認証に使われます。
  • 主な用途: Stripe / GitHub / Slack 等の Webhook 署名検証、AWS Signature V4、JWT (HS256/HS384/HS512) の署名部分、API リクエストの整合性チェック。
  • SHA-1 は非推奨: 衝突攻撃が現実的になっているため、新規実装では SHA-256 以上 を推奨します。HMAC-SHA1 自体は HMAC 構造の特性で当面安全とされますが、将来的な安全性のために避けるのが無難です。
  • シークレットキーの長さ: ハッシュ出力長と同じか長くするのが推奨(HMAC-SHA256 なら 32 bytes 以上)。短すぎると総当たり攻撃に弱くなります。本ツールでも空のキーには警告を出します。
  • 出力フォーマットの用途別目安: hex(最も一般的、ログ・URL)、base64(HTTPヘッダー)、base64url(JWT、URL中)。

📖 関連する解説記事

使い方と解説

HMAC署名を生成・確認する

HMAC Generator は、メッセージと秘密鍵から HMAC SHA-256 などの署名を生成するツールです。Webhook署名、API認証、リクエスト改ざん検知の検証に使えます。

入力データの扱い

メッセージと秘密鍵はブラウザ内で処理され、secutilsのサーバーへ送信されません。

Webhook署名の検証に使う

外部サービスから送られるWebhookでは、本文とシークレットからHMACを計算し、ヘッダーの署名と比較する方式がよく使われます。実装結果の確認やテストデータ作成に便利です。

ハッシュとHMACの違い

通常のハッシュは入力だけから値を計算しますが、HMACは秘密鍵も使います。そのため、同じ本文でも秘密鍵が異なれば署名も変わります。

作る前と後で変わった理解

作る前は、ハッシュもHMACも「入力データから固定長の文字列を作り、それを比較して改ざんを確認するもの」くらいの理解でした。調べていくと、通常のハッシュは誰でも同じ入力から同じ値を計算できるのに対し、HMACは秘密鍵を知らないと正しい署名を生成できないという違いが重要だと分かりました。例えばWebhookで単純に本文をSHA-256でハッシュ化するだけだと、攻撃者も同じ本文から正しいハッシュ値を計算できてしまいますが、共有秘密鍵を使ったHMACなら第三者は正しい署名を作れません。実際にツールへ入力して比較してみたことで、ハッシュは「データが変わっていないかの確認」、HMACはそこに「秘密鍵を持つ正当な送信者かどうか」を加えたもの、という理解に変わりました。「HMACはハッシュの強いやつ」ではなく、そもそも目的が違うと分かったのが一番の収穫です。

HMAC Generator でできること

  • SHA-1、SHA-256、SHA-384、SHA-512に対応
  • 複数の出力形式を確認
  • WebhookやAPI署名の検証に使える
関連ツール

次に使うツール

作業の流れに近いツールへすぐ移動できます。

解説記事

このツールに関連する解説記事

すべての記事 →