我正在寻找一个实用程序来生成一个真正的随机全局唯一标识符(guid),以便在源代码中复制和粘贴生成的guid。
存在许多基于某些内置guid生成器的实用程序。这些生成器可能包括网卡MAC地址,系统时钟,伪随机序列等。
然而,生成器必须是真随机的。这是因为我坚信任何降低guid碰撞概率的尝试都会增加这种可能性。
答案 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的范围,并希望最小化碰撞的可能性。