Dir*_*mar 52
由于Windows 2000 Microsoft使用版本4算法:
在Windows 2000中,Microsoft切换到版本4 GUID,因为嵌入MAC地址被视为安全风险.1
你也可以从.NET(来自维基百科)中生成的GUID中看到它:
版本4 UUID具有xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx形式,其中x的任何十六进制数字,但是对于yeg f47ac10b-58cc-4372-a567-0e02b2c3d479,只有8,9,A或B中的一个.
版本4 UUID由122个有效位组成,给出2 ^ 122个不同的值,这是一个非常大的数字.给定一组H值,在找到具有50%偶然性的第一次随机碰撞之前我们必须选择的预期值的数量可以如下计算(参见维基百科上的生日攻击):

2 ^ 122个不同值的结果(生日界限)约为2,89e + 18.这假定生成的值是随机分布的.显然,如果值分布不均匀,则可以更快地发现随机碰撞.有关详细信息,请参阅随机UUID重复概率.
1 事实上,由于使用版本1算法生成的GUID,可以跟踪 Melissa蠕虫的作者.
Han*_*ant 18
是的,.NET 4.0发生了变化,Guid.NewGuid()直接调用CoCreateGuid(),它是UuidCreate()的一个小包装器.以前版本的.NET在CLR中称为辅助函数GuidNative :: CompleteGuid().哪个叫CoCreateGuid.不确定为什么要做出这种改变,闻起来只不过是一个小小的优化.
无论如何,完全相同的Windows函数生成Guid,算法在过去10年中一直相同,它与以往一样可靠.
| 归档时间: |
|
| 查看次数: |
19249 次 |
| 最近记录: |