我是PhoneGap开发人员,我的应用程序适用于Android Windows和iOS。我在应用程序中使用UUID作为用户名。
是否可以使两个设备具有相同的UUID?
UUID在全世界是否唯一?
最佳答案
在UUID中几乎不可能发生冲突。
从维基百科:
随机生成的UUID具有122个随机位。总共128个
位,版本使用4位(“随机生成的UUID”),
以及该变体的两个位(“ Leach-Salz”)。
使用随机UUID,
两个具有相同值的几率可以使用
概率论(生日悖论)。使用近似值p(n)\approx 1-e^{-\tfrac{n^2}{{2x}}}
这些是
计算n个UUID(x = 2122)后发生意外冲突:
n概率
68,719,476,736 = 236 0.0000000000000004(4×10−16)
2,199,023,255,552 = 241 0.0000000000004(4×10-13)
70,368,744,177,664 = 246 0.0000000004(4×10−10)
为了理解这些数字,
有人被陨石击中的年风险估计为
在170亿中有一个机会,这意味着该概率约为
0.00000000006(6×10-11),相当于一年内创建数十万亿个> UUID并重复一次的几率。在
换句话说,只有在每秒产生10亿个UUID之后
在接下来的100年中,仅创建一个副本的可能性
大约是50%重复一次的概率约为
如果地球上每个人都拥有6亿个UUID,则为50%。