用sha1[:10]哈希还是MD5进行缓存,MD5更好吗?

问题描述 投票:0回答:1

我试图找到快速且简短的良好哈希函数

有讨论产生短哈希值的哈希函数?

他们建议使用:

>>> 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 更好,我错过了什么吗?

  • 是否有更好的、快速且短的哈希

python caching hash md5 sha1
1个回答
0
投票

对于缓存对象(不是安全目的),似乎使用 MD5 比 SHA1 更好,我是否遗漏了一些东西?

首先要注意,MD5 冲突很容易产生,因此人们可以利用它作为攻击向量。因此,您必须确保这不会造成安全问题。

MD5 当然可以比 SHA-1 更快,但请不要忘记这取决于实现。我见过 MD5 实现的性能非常糟糕,并且当前的 CPU 内置了 SHA-1 加速(英特尔 SHA 扩展)。

是否有更好的、快速且短的哈希

是的,有像 xxHash 这样的非安全哈希(例如在

xxhash
库中),其性能应该明显优于任何加密哈希。这并不奇怪,因为它们不需要完全的抗碰撞性。

© www.soinside.com 2019 - 2024. All rights reserved.