Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
所以我将上传的文件存储在 mysql 数据库中。为了确保数据库中没有重复文件,我创建了一个非常文件的 md5 哈希并将其存储起来。
在文件上传时,我得到新文件的哈希值并检查它是否已经存在于数据库中。
数据库表
id、file_name、file_binary、file_hash
现在,由于我发现存在哈希冲突的可能性,我想逐字节比较文件。
使用 PHP/Mysql 执行此操作的最佳和最快方法是什么,或者确保文件不上传两次(以节省存储空间)的最佳方法是什么。
提前致谢!
降低已经很小的冲突风险的一种方法是使用不同的算法(如 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'