我之前一直使用adler32
来生成一个32位的文本块哈希值(然后我将其用作文件名来保存该文本的处理版本的缓存)。 e.g。
hashed_file_name = adler32(pragraph.encode())
我希望增加哈希大小,以减少冲突的可能性[即两个不同的文本块获得相同的散列码,假设我有大约1000万个文本块,我认为会在大约0.2%的情况下发生冲突 - 即1000万/ 2 ^ 32]
我的问题是,什么是产生至少64位哈希的最快哈希生成器? sha1是一个有效的选项[产生160位哈希]吗?即。
hashed_file_name = hashlib.sha1(pragraph.encode()).hexdigest()
虽然这对我的neads来说是过度杀戮,但其他版本/选项在处理时间方面更有效吗?