0

だから私はアップロードされたファイルをmysqlデータベースに保存しています。データベースに重複ファイルがないことを確認するために、非常にファイルのmd5ハッシュを作成し、それも保存します。

ファイルのアップロード時に、新しいファイルのハッシュを取得し、それがデータベースにすでに存在するかどうかを確認します。

DBテーブル

id、file_name、file_binary、file_hash

ハッシュ衝突の可能性があることを発見したので、ファイルをバイトごとに比較したいと思います。

PHP / MySQLを使用してこれを行うための最良かつ最速のアプローチは何ですか、またはファイルが2回アップロードされないようにするための最良の方法は何ですか(ストレージを節約するため)。

前もって感謝します!

4

1 に答える 1

0

衝突のすでにマイナーなリスクを減らす1つの方法は、SHA1のような別のアルゴリズムで別のハッシュを作成することです。

DBテーブル

id、file_name、file_binary、file_hash_md5、file_hash_sha1

チェッククエリは次のようになります。

SELECT id FROM files_table WHERE file_hash_md5 = '78b7d929110959d1de58a32e9d331512' AND file_hash_sha1 = 'cc73882a1395af392b6cb005c45d19869bfa485a'
于 2013-02-16T08:55:57.180 に答える