我正在使用 SHA-1 来检测程序处理文件中的重复项。它不需要加密强并且可能是可逆的。我找到了这个快速散列函数列表 https://code.google.com/p/xxhash/
如果我想要在 SHA-1 附近的随机数据上获得更快的函数和碰撞,我应该选择什么?
也许 128 位哈希值足以进行文件重复数据删除? (与 160 位 sha-1 相比)
在我的程序中,哈希是在 0 - 512 KB 的块上计算的。
最佳答案
collisions rare: FNV-1, FNV-1a, DJB2, DJB2a, SDBM & MurmurHash
我不知道 xxHash 但它看起来也很有希望。
MurmurHash 非常快,版本 3 支持 128 位长度,我会选择这个。 (在 Java 和 Scala 中实现。)
关于performance - SHA-1 附近具有碰撞可能性的快速散列函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28660441/