ユーザーがコンテンツをアップロードできるサイトを構築しています。相変わらず世界制覇を目指しているので、同じファイルを2度保存するのは避けたいところです。たとえば、ユーザーが同じファイルを 2 回アップロードしようとした場合 (名前を変更するか、過去に行ったことを単に忘れて)。
私の現在のアプローチは、アップロードされた各ファイルを追跡するデータベースに、各ファイルに関する次の情報を保存することです。
- ファイル サイズ (バイト)
- ファイル内容の MD5 サム
- ファイル内容の SHA1 合計
次に、これら 3 つの列の一意のインデックスです。2 つのハッシュを使用して、誤検知のリスクを最小限に抑えます。
だから、私の質問は本当に:同じサイズの 2 つの異なる (「実世界の」) ファイルが同一の MD5およびSHA1 ハッシュを持つ確率はどれくらいですか?
または:同様の(非)複雑さのよりスマートな方法はありますか?
(確率はファイルサイズに依存する可能性があることを理解しています)。
ありがとう!