1

クライアント コンピューターにキャッシュされたファイルがサーバーに保存されている最後のバージョンであるかどうかを確認するファイル サーバー アプリケーションを設計しています。

私はファイル システムの「変更日」属性をあまり信頼していないので、ファイル内の実際のバイト数を比較したいと考えています。

これを行う最速の方法は (すべてのバイトを Web 経由で送信するには時間がかかるため)、ファイルの長さとハッシュ バイトをサーバーに送信することだと思います。次に、サーバーは最初にファイルの長さをチェックし、それらが一致する場合は、サーバー上にあるファイルのハッシュを計算し、クライアントが計算したものと同じかどうかをチェックします。

ファイルサイズが同じ場合にハッシュ衝突が発生する可能性を誰か教えてもらえますか? (私は現在、その速度のために MD5 を使用しています)。

ファイルサイズが同じで、ハッシュが同じであれば、コンテンツが同じであると仮定できますか?

ありがとう!

4

1 に答える 1

1

MD5 でランダムな衝突が発生する可能性はほとんどないため、その可能性を無視してもほぼ安全です。

ただし、MD5 は暗号的に弱いことが示されているため、悪意のある攻撃者が衝突するファイルを意図的に作成する可能性があります。有名な例は次のとおりです。

2008 年 12 月 30 日、研究者グループが第 25 回 Chaos Communication Congress で、MD5 ハッシュを介してチェックすると正当であると思われる中間認証局証明書を作成するために MD5 衝突を使用した方法を発表しました。

ソース

于 2010-12-09T20:40:14.530 に答える