Tre*_*non 8 php linux duplicates document-management dms
更新:我现在为ssdeep C API 编写了一个名为php_ssdeep的PHP扩展,以便在本机中简化PHP中的模糊散列和散列比较.可以在我的博客上找到更多信息.我希望这对人们有所帮助.
我参与在Linux上编写一个PHP自定义文档管理应用程序,它将存储各种文件格式(可能是1000个文件),我们需要能够检查文本文档是否已经上传,以防止数据库中的重复.
基本上,当用户上传新文件时,我们希望能够向他们提供重复或包含类似内容的文件列表.然后,这将允许他们选择一个预先存在的文档或继续上传他们自己的文档.
类似的文件将通过查看他们的相似发送的内容以及可能是动态生成的关键字列表来确定.然后,我们可以向用户显示百分比匹配,以帮助他们找到重复项.
您能推荐一下这个过程的任何软件包以及过去如何做到这一点的任何想法吗?
我认为可以通过获取所有文本内容来完成直接复制
然后形成MD5哈希以与任何新文档进行比较.如果用户编辑文档以添加额外的段落符号,则剥离这些项目应该有助于防止找不到欺骗.有什么想法吗?
此过程也可能作为夜间作业运行,如果计算要求太大而无法实时运行,我们可以在下次登录时通知用户任何重复项.然而,实时将是首选.
更新:我现在为ssdeep C API 编写了一个名为php_ssdeep的PHP扩展,以便在本机中简化PHP中的模糊散列和散列比较.可以在我的博客上找到更多信息.我希望这对人们有所帮助.
我找到了一个程序,它的创造者Jesse Kornblum称之为"模糊哈希".基本上它会使文件的哈希值可用于检测类似文件或相同匹配.
这里记录了它背后的理论:使用上下文触发的分段散列来识别几乎相同的文件
ssdeep是程序的名称,可以在Windows或Linux上运行.它旨在用于法医计算,但它似乎足以满足我们的目的.我在旧的Pentium 4机器上做了一个简短的测试,需要大约3秒才能通过一个23MB的哈希文件(哈希值只有不到135,000个文件)来查找两个文件的匹配.那段时间包括为我正在搜索的两个文件创建哈希值.