OpenReplay Logo
12k
12k

HMAC ジェネレーター

メッセージとシークレットキーから HMAC 署名を生成します。SHA-1、SHA-256、SHA-384、SHA-512 から選択し、hex または Base64 で出力できます。すべての処理はブラウザー内で実行されます。

アルゴリズム
出力
ローカルで計算

このツールについて

HMAC(Hash-based Message Authentication Code)は、メッセージをシークレットキーおよびハッシュ関数と組み合わせ、メッセージの完全性と真正性の両方を証明する署名を生成します。シークレットを共有している相手であれば誰でも HMAC を再計算し、メッセージが改ざんされていないことを確認できます。これは webhook 署名(Stripe、GitHub、Slack)、署名付き Cookie、多くの API 認証スキームの背後にある仕組みです。

メッセージとシークレットを入力し、ハッシュアルゴリズムと出力エンコーディングを選択すると、入力に合わせて署名がリアルタイムに更新されます。署名はブラウザー内の Web Crypto API で計算されるため、メッセージもシークレットもサーバーに送信されることは一切ありません。特定の連携で別途要求されない限り、SHA-256 を使用してください。

メッセージとシークレットがブラウザーの外に出ることはありません。HMAC は Web Crypto API を使ってローカルで計算されます。

よくある質問

HMAC と通常のハッシュの違いは何ですか?

通常のハッシュ(SHA-256 など)は、メッセージだけから誰でも計算できるため、完全性しか証明できません。HMAC はさらにシークレットキーを混ぜ込むため、有効な署名は送信者がシークレットを知っていたことも証明します。これが認証に役立つ理由です。

どのアルゴリズムを使えばよいですか?

SHA-256 が標準的な選択肢であり、ほとんどの API が期待するものです。SHA-384 と SHA-512 はより大きな出力を提供します。SHA-1 はレガシー連携向けにサポートされていますが、新しいシステムには推奨されません。

hex と Base64 の出力はどちらが優れていますか?

どちらも同じバイト列をエンコードしたものなので、連携先が期待する方を選んでください。webhook プロバイダーは通常どちらか一方を指定します。たとえば GitHub は hex を使用し、一部のプロバイダーは Base64 を使用します。