2

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

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

4

1 回答 1

4

你可以看看这个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 的数量。

于 2016-02-09T07:29:34.097 回答