gpt4 book ai didi

.net - .NET 4 GUID 是如何生成的?

转载 作者:行者123 更新时间:2023-12-03 06:50:51 25 4
gpt4 key购买 nike

我知道有很多问题here以及雷蒙德的出色(像往常一样)post 。然而,由于创建 GUID 的算法明显发生了变化,我发现很难获得任何最新信息。 MSDN似乎试图提供尽可能少的信息。

关于 .NET 4 中如何生成 GUID,我们了解多少?更改了什么?它如何影响安全性(“随机性”)和完整性(“唯一性”)?

我感兴趣的一个具体方面:在 v1 中,似乎不可能在一台计算机上再次生成相同的 GUID,因为涉及时间戳和计数器。在 v4 中,情况不再如此(有人告诉我),因此在单台计算机上获得相同 GUID 的机会......增加了

最佳答案

Windows 2000 Microsoft 使用版本 4 算法:

With Windows 2000, Microsoft switched to version 4 GUIDs, since embedding the MAC address was viewed as a security risk. 1

您也可以从 .NET 中生成的 GUID 中看到这一点(来自 Wikipedia ):

Version 4 UUIDs have the form xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx with any hexadecimal digits for x but only one of 8, 9, A, or B for y. e.g. f47ac10b-58cc-4372-a567-0e02b2c3d479.

版本 4 UUID 由 122 个有效位组成,提供 2^122 个不同的值,这是一个非常大的数字。给定一组 H 值,在以 50% 的概率找到第一次随机碰撞之前,我们必须选择的预期值数量可以计算如下(请参阅维基百科上的 Birthday Attack):

alt text

2^122 个不同值的结果(生日范围)约为 2,89e+18。这假设生成的值是随机分布的。显然,如果值分布不均匀,则可以更快地发现随机碰撞。有关更多详细信息,请参阅Random UUID probability of duplicates .

1事实上,Melissa 蠕虫病毒的作者可能是 tracked down由于使用版本 1 算法生成的 GUID。

关于.net - .NET 4 GUID 是如何生成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2757910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com