2017-10-14 63 views
-1

我正在尋找一個實用程序來生成一個真正的隨機全局唯一標識符(guid),以便複製和粘貼生成的guid在源代碼中。是否有一種便攜的方式來生成真正的隨機全局唯一標識符(guid)?

許多基於一些內置的guid生成器的實用程序。這些發生器可能包括網卡MAC地址,系統時鐘,僞隨機序列等。

發生器必須是真隨機的。這是因爲我堅信任何試圖降低guid碰撞概率的嘗試都會增加這種可能性。

回答

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比特;每個請求的費用消耗128位。

的拉鍊包含可執行和在Visual Studio中使用的源代碼2015或2017

注意,實用程序生成真隨機比特的GUID的所有128位。這是標準的違規。例如,this wiki article描述了guid應該花費幾位來指示guid類型。然而,效用更傾向於完全隨機化,以最大化guid的範圍並希望將碰撞概率降至最低。