当使用UUID5而不是SHA1时,碰撞概率是否相同?

4

我需要创建一个唯一的哈希值,但想要保持“uuid”结构,因此我考虑使用类似以下的方法:

uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')

使用sha1的替代方案:

hashlib.sha1('python.org').hexdigest()

但是我想知道,如果它们提供了相同的碰撞概率,或者可能由于名称空间的原因uuid5更容易发生碰撞。

1个回答

1
简单回答:避免使用UUID5。
UUID5将哈希截断为128位。虽然对于大多数应用程序来说,128位完全足够,但真正的问题是您正在使用已过时和已弃用的SHA1哈希算法,并且在以后更改它时自己变得更加困难。
简而言之:意外冲突是非常不可能发生的,但恶意制造的冲突变得越来越可行。
如果有可能,请从SHA2或SHA3开始,并为您的哈希使用一个带版本的对象,以便以后可以更改算法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接