我根据校验和存储了一些文件但是我发现了一个有时候2个校验和可以相同的缺陷。
我总是尝试寻找API而不是重新发明轮子,但我找不到任何东西。
我知道JSR 268和JackRabbit是内容存储的标准,但我的应用程序使用这些东西的时间很短。
那么,是否存在使用Java进行单一实例文件存储的方法,还是应该继续为校验和搜索新算法?
编辑:
当numcheck不工作时:2个文件完全相同,只是在不同的文件系统位置。但是,当从客户端发送时,无法在服务器端知道它们之前的路径,因此它是相同的文件两次,相同的校验和。
如果你想找回其中一个,你如何检查?
想知道是否有标准方法,API或算法可以帮助我发现差异
答案 0 :(得分:3)
无论哈希算法有多强,总有可能出现collision。散列算法从无限多个输入中生成有限数量的散列。
答案 1 :(得分:0)
确保两个文件不相同的唯一方法是逐位比较它们。散列它们更容易,更快,但却带来了碰撞的风险。