NSUUID复制机会形成不同的设备。

在安装应用程序时,我需要为设备生成唯一ID,并将此值存储在设备上,然后使用此UUID与服务器进行通信。 而NSSUUD似乎适合于这个地位,但是我很困惑,有没有从多个设备上复制UUID的机会。 我已经find了答案https://stackoverflow.com/a/6963990/1573209它描述了版本1types使用MAC地址和60位时钟来生成UUID,所以重复机会可以忽略不计。 Version4使用一些固定的数字和一些随机数字来生成UUID, UUIDs created by NSUUID conform to RFC 4122 version 4 and are created with random bytesUUIDs created by NSUUID conform to RFC 4122 version 4 and are created with random bytes

这是否意味着重复的机会更高? 那么如何使用版本1types的UUID生成器,我不能看到它的任何文档。

你可以看看这个RFC 4122 。 符合RFC 4122的UUID在给定的空间和时间内实际上是独一无二的。 您也可以看到重复的随机UUID概率 。

在总共128位中,两位表示RFC 4122(“Leach-Salz”)UUID,四位表示版本(0100表示​​“随机生成”),所以随机生成的UUID具有122个随机位。 可以使用概率论(生日问题)来计算具有相同值的两个这种UUID的机会。 发现计算n个UUID后发生意外冲突的概率x = 122,发现它非常接近零

对于n=2^36 ,即68,719,476,736的碰撞概率为0.0000000000000004。 对于n的较小值,这个值将会更小,并且随着更多的UUID被生成,概率也会增加。 在上面的估计中,n表示生成的UUID的数量。