是否有可移植的方法来生成真正的随机全局唯一标识符(guid)?

时间:2017-10-14 08:35:59

标签: random guid

我正在寻找一个实用程序来生成一个真正的随机全局唯一标识符(guid),以便在源代码中复制和粘贴生成的guid。

存在许多基于某些内置guid生成器的实用程序。这些生成器可能包括网卡MAC地址,系统时钟,伪随机序列等。

然而,生成器必须是真随机的。这是因为我坚信任何降低guid碰撞概率的尝试都会增加这种可能性。

1 个答案:

答案 0 :(得分:0)

我希望找到一种方法,使用内置在CPU中的白噪声采样。

找不到便携式解决方案我最终查询random.org,相信他们做得很好。

附上Windows commandline utility,通过HTTP查询random.org,汇编一个真正的随机guid,并将guid复制到剪贴板。

getguid
Guid d9cc9db3-dd4a-b05a-44ac-679b7dbefcf0 copied to the clipboard.
Quota remaining at random.org: 999872 bits.
Press enter.

您在random.org的免费配额为每天1000000位;每个请求的quid消耗128位。

该zip包含可在Visual Studio 2015或2017中使用的可执行文件和源代码。

请注意,该实用程序会为guid的所有128位生成真随机位。这是标准的违规。例如this wiki article描述guid应该花几个位来指示guid类型。然而,该实用程序更喜欢完全随机,以便最大化guid的范围,并希望最小化碰撞的可能性。