オンライン HMAC 計算ツール
計算情報
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メッセージ認証コードをオンラインで生成・検証
- 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が使われる点も案内