Csharp/C#教程:Guid Uniqueness在不同的机器上分享


Guid Uniqueness在不同的机器上

可能重复:
GUID是100%独一无二的吗?

在阅读Guid上的所有post后,我仍然不清楚一件简单的事情:

由不同机器生成的Guids也保持其唯一性。

我已经阅读过关于单机的guid唯一性,但我仍然不了解不同机器的唯一性

GUID“几乎” 普遍独特。

GUID是128位整数(16字节),可以在需要唯一标识符的所有计算机和网络中使用。 这种标识符具有非常低的重复概率。

来自MSDN

通常认为新的随机GUID始终是唯一的。 概率地说这不是真的,但是产生欺骗的可能性非常小,我们不需要关心它。

生成两个相同guid的几率为5,316,911,983,139,663,491,615,228,241,121,400,000

因此,如果您在100万台计算机上生成100万个guid,则生成重复项的几率为:5,316,911,983,139,663,491,615,228中的1个

在10亿台计算机上获取10亿个guid,产生欺骗的几率为:5,316,911,983,139,663,491(即5.3质量)中的1个。

这些数字不言而喻,你不会产生欺骗。

如果您想知道我在哪里获得这些数字,GUID的值部分是122位。 2 ^ 122是5.3169119831396634916152282411214 x 10 ^ 36

一些更疯狂的人物……
如果每秒生成100万个guid,则需要168,486,464,147,580,370,470,736年才能在概率上保证重复。

@viggity提到一些guid有48位被一个mac地址占用,这些数字仍然是惊人的,因此可以承受丢失这些位。 以上面每秒200万个guid(在同一台计算机上)的例子为例,保证欺骗仍需要598,584,166年。 那是6亿年。 这比地球上的生命还要长。 或者如果你是一个年轻的地球创造论者,那至少是地球生命的6万倍。

我记得在某处看到如果你把IPV4地址空间(32位)可视化为邮票的大小,IPV6(128位)是我们太阳系的大小。 生成一个骗局就不会发生。

此外,如果有任何东西你比两台不同的机器更有可能复制同一台机器,因为大多数Guid生成算法都会将你的计算机NIC MAC地址嵌入到guid中(它是48位)。 虽然有些算法没有嵌入MAC地址,但只是纯粹随机的。 见: http : //guid.us/

编辑:另一个有趣的比例示例地球的体积大约是10 ^ 27立方厘米。 这意味着地球的整个体积每立方厘米就可以拥有340,000,000,000个指南。 这个数字令人难以置信。

或者,地球表面的每个方形纳米尺寸本身可以具有大约650,000个guid。

上述就是C#学习教程:Guid Uniqueness在不同的机器上分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1027858.html

(0)
上一篇 2022年1月10日
下一篇 2022年1月10日

精彩推荐