[解決済み] 2つの異なる文字列から同じMD5ハッシュコードを生成することは可能ですか?
質問
バイナリ資産のそれぞれについて、MD5 ハッシュを生成しています。これは、特定のバイナリ資産がすでに私たちのアプリケーションにあるかどうかをチェックするために使用されます。しかし、2 つの異なるバイナリ資産が同じ MD5 ハッシュを生成することは可能なのでしょうか。では、2 つの異なる文字列が同じ MD5 ハッシュを生成することは可能でしょうか。
どのように解決するのですか?
さらに数十億の資産の集合に対して ランダムな衝突の可能性は無視できるほど小さいです。 -- 心配するほどのことではありません。ということを考えると 誕生日のパラドックス を考えると、2^64 (または 18,446,744,073,709,551,616) 個の資産の集合があるとき、以下の確率があります。 が 1 つ MD5 衝突の確率は 50% です。この規模では、おそらくストレージの容量で Google に勝つでしょう。
しかし、MD5 ハッシュ関数が壊れているため (脆弱性があり 衝突攻撃 )、どんな 攻撃者は2つの衝突するアセット を数秒のCPUパワーで作り出すことができます。したがって、MD5 を使用したい場合、そのような攻撃者がアプリケーションのセキュリティを侵害しないことを確認してください!
また、もし 攻撃者が既存の資産への衝突を偽造することができた場合の影響も考えてみましょう。 に衝突させることができた場合の影響も考えてみてください。そのような既知の攻撃は存在しませんが ( 前画像攻撃 )はありませんが、衝突攻撃に関する現在の研究を拡張することで可能になる可能性があります。
もしこれらが問題になるなら、SHA-2シリーズのハッシュ関数(SHA-256、SHA-384、SHA-512)を見てみることをお勧めします。欠点は、わずかに遅く、ハッシュ出力が長くなることです。
関連
-
[解決済み] SHA-256 javascriptの実装で、一般に信頼できるとされるものはありますか?
-
[解決済み] JavaでMD5ハッシュを生成するにはどうすればよいですか?
-
[解決済み] bcryptはどうして塩を内蔵しているのですか?
-
[解決済み] Git は Blob の SHA-1 衝突をどのように処理するのでしょうか?
-
[解決済み】PHPパスワードのハッシュとソルトの安全性について
-
[解決済み】パスワードの「二重ハッシュ化」は、一度だけハッシュ化するよりも安全性が低いのでしょうか?
-
[解決済み】MD5ハッシュを復号化することは可能ですか?
-
[解決済み】ハッシュとレンジの主キーとは?
-
[解決済み】SHAが衝突する可能性は、実際には無視しても大丈夫なのでしょうか?
-
[解決済み] パスワードの暗号化:ベストプラクティス?[クローズド]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】弱い抵抗と強い抵抗の違いとは?
-
[解決済み] MurmurHash - それは何ですか?
-
[解決済み] node.jsのハッシュ文字列?
-
[解決済み】MD5ハッシュを復号化することは可能ですか?
-
[解決済み】ハッシュとレンジの主キーとは?
-
[解決済み】SHAが衝突する可能性は、実際には無視しても大丈夫なのでしょうか?
-
[解決済み] パスワードの暗号化:ベストプラクティス?[クローズド]。
-
[解決済み] ReSharperのGetHashCodeのオーバーライドに'397'が使用されているのはなぜですか?
-
[解決済み] MD5/SHA1よりもCRCの方が適切な場合とは?
-
[解決済み] MD5ハッシュの計算は、SHAファミリー関数よりもCPU負荷が低いですか?