0

我根据校验和存储了一些文件,但我发现了一个缺陷,即有时 2 个校验和可能相同。

我总是尝试寻找 API 而不是重新发明轮子,但我什么也找不到。

我知道有 JSR 268 和 JackRabbit 作为内容存储的标准,但我的应用程序使用这样的东西已经很长时间了。

那么,有没有使用 Java 进行单实例文件存储的方法,还是我应该继续为我的校验和寻找新算法?

编辑:

当 numcheck 不起作用时:2 个文件完全相同,只是位于不同的文件系统位置。但是,当从客户端发送时,服务器端不可能知道它们之前的路径,所以它是同一个文件两次,相同的校验和。

如果你想检索其中一个,你如何检查?

想知道是否有标准方法、API 或算法可以帮助我发现差异

4

2 回答 2

3

无论散列算法有多强,总是有可能发生冲突。散列算法从无限数量的输入生成有限数量的散列。

于 2011-07-27T00:42:49.853 回答
0

确保两个文件不相同的唯一方法是逐位比较它们。散列它们更容易、更快,但也有碰撞的风险。

于 2011-07-27T00:45:17.727 回答