ハッシュジェネレーター
テキストやファイルから暗号学的ハッシュを生成。HMAC対応。すべてブラウザ上で動作します。
テキストがブラウザの外に出ることはありません。すべてのハッシュ処理はローカルで実行されます。
Tips
SHA-256が標準的な選択肢
SHA-256は現在最も広く使われている安全なハッシュアルゴリズムです。TLS証明書、Gitコミット、Bitcoin、その他多くのセキュリティプロトコルで使用されています。
MD5とSHA-1はセキュリティ用途には不適
MD5とSHA-1にはどちらも衝突攻撃が実証されています。デジタル署名や証明書には使用すべきではありません。ただし、セキュリティ以外のチェックサムやレガシーシステムとの互換性には引き続き有用です。
HMACはハッシュに認証を追加する
HMACは秘密鍵とハッシュ関数を組み合わせ、完全性と真正性の両方を証明する署名を生成します。Webhook検証やAPIリクエスト署名に不可欠です。
ファイルハッシュでダウンロードの整合性を検証
ソフトウェア配布元はダウンロードと共にSHA-256チェックサムを公開しています。ダウンロードしたファイルをローカルでハッシュ化して比較することで、ファイルが破損や改ざんされていないことを確認できます。
よくある使い方
ファイル整合性の検証
ダウンロードしたファイルをハッシュ化し、公開されたチェックサムと比較して、破損や改ざんがないことを確認します。
Webhook署名の検証
HMACを使用して、受信したWebhookが本物であり、転送中に改変されていないことを検証します。
データ重複排除
ファイル内容のハッシュを生成して、ファイル全体を比較せずに効率的に重複を検出します。
パスワードハッシュの参考
認証システムを扱う際のハッシュ出力形式を理解できます。注意:実際のパスワード保存にはSHAではなくbcryptやArgon2を使用してください。
Gitコミットの識別
GitはSHA-1(SHA-256に移行中)を使用してコミット、ツリー、blobを識別します。ハッシュの理解はGitの内部構造の把握に役立ちます。
デジタルフォレンジック
証拠ファイルの暗号学的フィンガープリントを作成し、収集後に改変されていないことを証明します。
よくある質問
ハッシュ関数とは?
ハッシュ関数は任意の入力を受け取り、固定サイズの出力(ハッシュまたはダイジェスト)を生成します。同じ入力からは常に同じハッシュが生成されますが、入力のわずかな変更でも完全に異なるハッシュが生成されます。ハッシュは一方向の操作で、元の入力を復元することはできません。
どのアルゴリズムを選ぶべき?
汎用的な安全なハッシュにはSHA-256を使用してください。MD5やSHA-1はセキュリティ以外のチェックサムやレガシー互換性のみに使用してください。より高いセキュリティマージンにはSHA-512を使用してください。ポリシーでSHA-2ファミリー以外のアルゴリズムが求められる場合はSHA-3を使用してください。
MD5はまだ安全に使える?
MD5は暗号学的に破られており、衝突攻撃が現実的です。デジタル署名、証明書、パスワードハッシュには絶対に使用しないでください。ただし、敵対者がいない場面でのファイル転送確認など、セキュリティ以外のチェックサムには引き続き使用可能です。
データはブラウザの外に出る?
いいえ。すべてのハッシュ処理はWeb Crypto APIとJavaScriptを使用してブラウザ内で完全に実行されます。テキストやファイルがデバイスの外に出ることはありません。
HMACとは?
HMAC(ハッシュベースメッセージ認証コード)は秘密鍵とハッシュ関数を組み合わせます。単純なハッシュとは異なり、HMACはメッセージが鍵を知る者によって作成されたことを証明し、完全性と認証の両方を提供します。
ハッシュから元のテキストを復元できる?
いいえ。ハッシュ関数は一方向に設計されています。ハッシュを逆算する数学的手法は存在しません。総当たり攻撃や辞書攻撃で特定のハッシュを生成する入力を見つけることはありますが、これは復元ではなく推測です。