0

所以我将上传的文件存储在 mysql 数据库中。为了确保数据库中没有重复文件,我创建了一个非常文件的 md5 哈希并将其存储起来。

在文件上传时,我得到新文件的哈希值并检查它是否已经存在于数据库中。

数据库表

id、file_name、file_binary、file_hash

现在,由于我发现存在哈希冲突的可能性,我想逐字节比较文件。

使用 PHP/Mysql 执行此操作的最佳和最快方法是什么,或者确保文件不上传两次(以节省存储空间)的最佳方法是什么。

提前致谢!

4

1 回答 1

0

降低已经很小的冲突风险的一种方法是使用不同的算法(如 SHA1)创建另一个散列。

数据库表

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 回答