Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
问题是我想使用哈希函数来检查文件完整性,这里的加密是不必要的,所以我认为非加密哈希 cityhash 可能是一个不错的选择,因为我想要的只是速度和更少的冲突。
虽然源刚刚提供了 cityhash 函数,其中固定长度的字符串作为输入,哈希码作为输出。那么如何使用该函数对文件进行哈希处理呢?
我可以将文件分成几个块,计算每个块的哈希码并对每个哈希码进行异或吗?是否会影响碰撞效率或速度?你还有什么好主意吗?
这不是 CityHash 的合适应用,这样使用会表现出很差的抗碰撞性。
如果您想要快速的文件完整性校验和,请使用 CRC 系列函数,例如 CRC16。如果您想要更广泛的内容,那么 SHA1 等加密哈希的速度应该绰绰有余。(几乎任何现代 CPU 基本上都可以像从内存中读取数据一样快地散列数据。)