ハッシュジェネレーター
MD5、SHA-1、SHA-256ハッシュを生成
ハッシュジェネレーター の使い方
MD5、SHA-1、SHA-256ハッシュを生成 無料オンラインツール、登録不要、広告なし。今すぐ無料でお使いいただけます。
暗号学的ハッシュ関数の使用場面
ハッシュ関数はあらゆる入力を受け取り、その入力を一意に表す固定長の要約(ダイジェスト)を生成します。1文字変えるだけで全く異なるハッシュが生成されます。この性質がハッシュをデータの整合性検証とセキュリティに不可欠にしています。
- ファイルの整合性検証:ソフトウェアのダウンロードにはSHA-256ハッシュが含まれます。ダウンロード後、自分のファイルのハッシュを計算して比較します。不一致はファイルが転送中に破損または改ざんされたことを意味します。
- パスワードの保存:WebサービスはパスワードをそのままDBに保存しません。パスワードのハッシュ(理想的にはbcryptやArgon2)を保存します。ログイン時に送信されたパスワードをハッシュして保存されたハッシュと比較します。MD5やSHA-1は絶対にパスワードに使わないでください。
- 重複除去:ファイルの内容をハッシュしてバイト単位の比較なしに重複を検出します。ハッシュが同一のファイルはファイル名や変更日に関わらず同一です。
- Gitのバージョン管理:Gitの各コミット、ファイル、ツリーオブジェクトはSHA-1ハッシュ(SHA-256に移行中)で識別されます。コミットハッシュはその時点のコードの正確な状態を一意に識別します。
- デジタル署名:文書そのものではなく文書のハッシュに署名します。より高速で整合性保証として数学的に同等です。署名は内容の真正性と整合性の両方を検証します。
速度 vs セキュリティ:MD5とSHA-1は高速ですが暗号学的に危殆化しています。セキュリティには使わないでください。SHA-256とSHA-512が現在の標準です。パスワードのハッシュには意図的に遅いbcrypt、scrypt、Argon2を使い、GPUによるブルートフォース攻撃に耐えます。
Frequently Asked Questions
MD5、SHA-1、SHA-256、SHA-512の違いは何ですか?
MD5(128ビット)とSHA-1(160ビット)は高速ですが、既知の衝突脆弱性があり暗号学的に危殆化しています。セキュリティには使わないでください。SHA-256(256ビット)とSHA-512(512ビット)はSHA-2ファミリーで、現在安全で広く使われています。SHA-3は異なる内部設計の新しい代替です。
ハッシュを逆算できますか?
できません。ハッシュ関数は一方向性として設計されています。出力から入力を数学的に取り戻すことはできません。レインボーテーブル(一般的な入力のハッシュを事前計算したテーブル)でこれを回避できます。そのためパスワードはハッシュ前にソルト(ランダムな値を追加)する必要があります。
ハッシュ衝突とは何ですか?
衝突は2つの異なる入力が同じハッシュを生成する時に発生します。MD5とSHA-1では研究者が実際の衝突攻撃を実証しており、2つの異なるファイルが同じハッシュを持てることを意味します。これはこれらのアルゴリズムの暗号学的な使用を無効にする致命的なセキュリティ欠陥です。
パスワードハッシュにおけるソルトとは何ですか?
ソルトはハッシュ前に各パスワードに追加されるランダムな一意の値です:hash(パスワード+ソルト)。各ユーザーはハッシュとともに保存される一意のソルトを持ちます。これによりレインボーテーブル攻撃を防ぎ、同じパスワードを持つ2人のユーザーが異なる保存ハッシュを持つことを保証します。
ハッシュとチェックサムの違いは何ですか?
両方ともデータの整合性を検証しますが、チェックサム(CRC32、Adler-32)は速度と偶発的なエラー検出のために最適化されており、意図的に偽造できます。暗号学的ハッシュは衝突耐性と不可逆性を持つよう設計されています。伝送エラー検出にはチェックサムを、セキュリティには暗号学的ハッシュを使います。
MD5 vs SHA-1 vs SHA-256 vs bcrypt
MD5:128ビット、非常に高速、暗号学的に危殆化。非セキュリティのチェックサムにのみ使用可能。SHA-1:160ビット、暗号学的に危殆化。CAと主要ブラウザにより廃止。SHA-256:256ビット、安全、ファイル整合性とデジタル署名の現在の標準。SHA-512:512ビット、若干より安全。bcrypt/Argon2:意図的に遅い。速度が利点ではなく欠点であるパスワードハッシュのために特別に設計されています。