オンライン HMAC 計算ツール

問題を報告
メッセージのエンコーディング ブラウザ上でローカル計算。データはアップロードされません
一般的な署名例
キーのエンコーディング 長さ
ブラウザの CSPRNG(crypto.getRandomValues)を使用して生成
ハッシュアルゴリズム 出力形式
検証には一定時間比較を使用し、比較時間の違いから情報が漏れるリスクを抑えます
出力長は選択したハッシュアルゴリズムによって異なります

計算情報

アルゴリズム:-
ダイジェスト長:-
出力:-
メッセージ長:-
キー長:-
計算エンジン:-
処理時間:-
計算場所:-
HMAC はキーを使用して計算し、データの完全性とメッセージの送信元を検証できます。
注意:JWT 署名では Base64URL(パディングなし、+ / の代わりに -_ を使用)を使います。標準 Base64 とは異なるため、比較時はエンコーディングの違いに注意してください。
プライバシーに関する注意:すべての計算はブラウザ上でローカルに実行されます。入力内容やファイルがサーバーへアップロードされることはありません。

8種類のハッシュアルゴリズムでHMACを生成・検証、キーとメッセージは3種類のエンコードに対応し、定時間比較を採用

オンライン HMAC 計算ツール

HMACはキー付きハッシュメッセージ認証コードです。同じメッセージでも異なるキーを使用すると異なる結果になるため、データが改ざんされていないことを検証すると同時に、メッセージの送信者がキーを保持していることを確認できます。API署名、Webhookコールバックの検証、ダウンロードURLの改ざん防止などで利用されています。

主な機能

  • HMAC生成:メッセージとキーを入力し、ハッシュアルゴリズムを選択して認証コードを生成できます。
  • HMAC検証:相手から提供された期待値を貼り付け、ローカルで計算した結果と比較して署名の一致・不一致を確認できます。
  • ランダムキー:ブラウザの安全な乱数を使用して16、32、64バイトのキーを生成できます。キー入力欄は表示・非表示を切り替えられます。
  • サンプル:API署名とWebhook検証の2種類のサンプルを内蔵し、パラメータの組み立て方を確認できます。

対応アルゴリズムとエンコード

HMAC-SHA1、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512、HMAC-SHA3-224、HMAC-SHA3-256、HMAC-SHA3-384、HMAC-SHA3-512の8種類に対応しています。SHA1は非推奨として表示され、デフォルトではSHA256を使用します。キーとメッセージはそれぞれUTF-8、Hex、Base64として個別に解析でき、出力はHexまたはBase64から選択できます。

検証と結果情報

検証モードでは定時間比較を使用し、比較処理時間の差による情報漏えいを防ぎます。結果にはダイジェスト長、メッセージ長、キー長を表示し、キーが途中で切れていないか、余分な空白が含まれていないか確認できます。JWT署名ではBase64URLが使用され、標準Base64とはパディングと2つの文字が異なるため、比較時には注意が必要です。

エラー処理

キーまたはメッセージをHexとして解析する際に不正な文字や奇数長がある場合は、その原因を明確に表示します。Base64の解析失敗も通知し、誤った署名結果を返しません。メッセージまたはキーが空の場合、検証時に期待するHMACが未入力の場合も、先に入力の補完を促します。

利用シーン

  • 公開APIの署名をデバッグし、ローカル実装とドキュメントのサンプルが一致しているか確認。
  • Webhookコールバックのリクエストヘッダーに含まれる署名を検証し、リクエストが偽造されていないか確認。
  • PHP、Java、Go、Nodeなど異なる言語によるHMAC実装の結果を比較。
  • テスト環境用のランダムキーをすばやく生成。

プライバシーとデータセキュリティ

HMAC計算はすべてブラウザ上でローカルに実行されます。サーバー側の計算APIはなく、キーやメッセージがサーバーへアップロード・保存されることはありません。それでも、デバッグ時には本番環境の実キーではなくテスト用キーを使用することを推奨します。

HMACメッセージ認証コードをオンラインで生成・検証

HMACはハッシュ計算に秘密鍵を組み込み、データの完全性を検証するとともにメッセージの送信元を確認します。API署名やWebhook検証で一般的に利用されています。
  • 8種類のアルゴリズムに対応:HMAC-SHA1、SHA256、SHA384、SHA512、SHA3-224/256/384/512
  • キーとメッセージをそれぞれUTF-8、Hex、Base64として解析でき、各種API仕様に対応
  • HexとBase64で出力でき、ダイジェスト長、メッセージ長、キー長も表示
  • ブラウザの安全な乱数で16、32、64バイトのキーを生成でき、表示・非表示にも対応
  • 検証モードでは期待するHMACを貼り付けて定時間比較で照合
  • API署名とWebhook検証のサンプルを内蔵し、JWTでBase64URLが使われる点も案内
API署名のデバッグ、Webhookコールバックの検証、異なる言語による署名結果の比較などに適しています。エンコードの解析に失敗した場合は原因を直接表示します。すべての計算はブラウザ上でローカルに実行され、キーとメッセージはサーバーへアップロードされません。
コメント 0
まだコメントはありません。最初のコメントを投稿しましょう!
コメント内容を入力してください
0/255