我试图找到快速且简短的良好哈希函数
有讨论产生短哈希值的哈希函数?
他们建议使用:
>>> import hashlib
>>> hash = hashlib.sha1("my message".encode("UTF-8")).hexdigest()
>>> hash
'104ab42f1193c336aa2cf08a2c946d5c6fd0fcdb'
>>> hash[:10]
'104ab42f11'
此链接中有比较表https://www.tutorialspoint.com/difference- Between-md5-and-sha1 这表明 MD5 比 SHA1 更快
问题是:
对于缓存对象(不是安全目的),似乎使用 MD5 比 SHA1 更好,我错过了什么吗?
是否有更好的、快速且短的哈希
对于缓存对象(不是安全目的),似乎使用 MD5 比 SHA1 更好,我是否遗漏了一些东西?
首先要注意,MD5 冲突很容易产生,因此人们可以利用它作为攻击向量。因此,您必须确保这不会造成安全问题。
MD5 当然可以比 SHA-1 更快,但请不要忘记这取决于实现。我见过 MD5 实现的性能非常糟糕,并且当前的 CPU 内置了 SHA-1 加速(英特尔 SHA 扩展)。
是否有更好的、快速且短的哈希
是的,有像 xxHash 这样的非安全哈希(例如在
xxhash
库中),其性能应该明显优于任何加密哈希。这并不奇怪,因为它们不需要完全的抗碰撞性。