所以我将上传的文件存储在mysql数据库中。 为了确保数据库中没有重复文件,我创建了一个非常文件的md5哈希并存储它。
在文件上传时,我获取新文件的哈希值并检查它是否已存在于数据库中。
数据库表
id,file_name,file_binary,file_hash
现在,因为我发现存在哈希冲突的可能性,我想逐字节地比较文件。
使用PHP / Mysql执行此操作的最佳和最快方法是什么,或者确保文件不会上载两次(以节省存储空间)的最佳方法。
提前致谢!
答案 0 :(得分: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'