类型3 UUID的碰撞概率是否与MD5的相同

时间:2019-11-22 10:57:03

标签: java uuid

在我的应用程序中,我想将文件URI(/Users/<>/...C://...)转换为唯一标识符。文件URI是外部用户输入,生成的UUID将是密钥(用于将一些数据存储到DB中)。

(具有UUID不是强制性的。我想将可变长度的字符串转换为可管理的字符串)。

在Java中,要将任意字符串转换为UUID,我可以使用UUID.nameUUIDFromBytes。 它使用MD-5生成UUID。

此操作(随机字符串-> UUID)的碰撞概率是否与MD5本身的碰撞概率相同? (process 2^64 inputs to get a 50% possibility

或者,将输入转换为UUID是否会增加碰撞概率?

1 个答案:

答案 0 :(得分:0)

对于UUIDv3,该库仅创建一个标准的128位MD5哈希,然后用固定值替换其中的6位,因此结果不会与其他UUID算法的结果相冲突。

冲突概率取决于您拥有多少个随机位,因此从理论上讲,UUIDv3值的冲突频率要比原始MD5哈希值稍高。实际上,这无关紧要。两者都有那么多位,无论如何,赔率都是天文数字。