3

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

虽然刚刚提供了 cityhash 函数,其中固定长度的字符串作为输入,哈希码作为输出。那么如何使用该函数对文件进行哈希处理呢?

我可以将文件分成几个块,计算每个块的哈希码并对每个哈希码进行异或吗?是否会影响碰撞效率或速度?你还有什么好主意吗?

4

1 回答 1

0

这不是 CityHash 的合适应用,这样使用会表现出很差的抗碰撞性。

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

于 2013-08-19T15:55:14.350 回答