当前位置: 首页 > 编程语言 > C#

Guid唯一性共享

时间:2023-04-11 10:44:21 C#

Guid跨不同机器的唯一性可能重复:GUID是否100%唯一?看了所有Guids的帖子,有一点我还是不太清楚:不同机器生成的Guids也是保持唯一性的。我读过有关单台机器的GUID唯一性的信息,但我仍然不了解跨机器GUID的唯一性“几乎”是普遍唯一的。GUID是128位整数(16字节),可用于所有需要唯一标识符的计算机和网络。此类标识符的重复概率非常低。从MSDN中,通常假设新的随机GUID始终是唯一的。从概率上讲这不是真的,但被欺骗的可能性很小,我们不需要关心它。Theoddsofgeneratingtwoidenticalguidsare5,316,911,983,139,663,491,615,228,241,121,400,000soifyougenerate1millionguidson1millioncomputers,theoddsofgeneratingduplicatesare:5,316,911,983,139,663,491,615,220billionget1guidon1billioncomputersThechanceofcheatingis:1in5,316,911,983,139,663,491(ie5.3quality).数字不言自明,您不会被欺骗。如果您想知道我从哪里得到这些数字,GUID的值部分是122位。2^122是5.3169119831396634916152282411214x10^36一些更疯狂的数字...如果您每秒生成100万个guid,则概率上需要168,486,464,147,580,370,470,736年才能保证重复。@viggity提到一些guid有48位被mac地址占用,这些数字仍然是惊人的,所以丢失这些位是可以承受的。以上述每秒200万个GUID为例(在同一台计算机上),仍需要598,584,166年才能保证欺骗。那是六亿年。这比地球上的生命还要长。或者如果你是一个年轻的地球创造论者,那至少是地球生命的60,000倍。我记得在某处读到过,如果将IPV4地址空间(32位)想象成邮票的大小,那么IPV6(128位)就是我们太阳系的大小。生成一个骗局,它不会发生。此外,如果有的话,你更有可能复制同一台机器而不是两台不同的机器,因为大多数Guid生成算法将你的计算机NICMAC地址嵌入到guid(它是48位)中。虽然有些算法不嵌入MAC地址,但它只是纯随机的。请参阅:http://guid.us/编辑:另一个有趣的比例示例地球的体积约为10^27立方厘米。这意味着地球的整个体积每立方厘米可以容纳340,000,000,000个向导。这些数字令人难以置信。或者,地球表面的每平方纳米本身可能有大约650,000个guid。以上就是《C#学习教程:Guid异机共享唯一性》的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢