使用Cityhash实现文件完整性

时间:2013-08-19 15:05:21

标签: c++ hash

问题是我想使用哈希函数来检查文件的完整性,这里的加密是不必要的,所以我认为非加密哈希cityhash可能是一个不错的选择,因为我想要的只是速度和更少的冲突。

虽然source刚刚提供了cityhash函数,其中固定长度字符串作为输入,哈希码作为输出。那么我该如何使用该函数来散列文件?

我可以将文件分成几个块,计算每个块的哈希码和每个哈希码的XOR吗?它会影响碰撞效率或速度吗?你还有其他好主意吗?

1 个答案:

答案 0 :(得分:0)

对于CityHash来说,这不是一个合适的应用程序,并且在使用这种方式时它会表现出较差的抗冲击性。

如果需要快速文件完整性校验和,请使用CRC系列函数,如CRC16。如果你想要更广泛的东西,加密哈希如SHA1的速度应该绰绰有余。 (几乎任何现代CPU都可以基本上和从内存中读取数据一样快地散列数据。)