我正在尋找一個實用程序來生成一個真正的隨機全局唯一標識符(guid),以便複製和粘貼生成的guid在源代碼中。是否有一種便攜的方式來生成真正的隨機全局唯一標識符(guid)?
許多基於一些內置的guid生成器的實用程序。這些發生器可能包括網卡MAC地址,系統時鐘,僞隨機序列等。
發生器必須是真隨機的。這是因爲我堅信任何試圖降低guid碰撞概率的嘗試都會增加這種可能性。
我正在尋找一個實用程序來生成一個真正的隨機全局唯一標識符(guid),以便複製和粘貼生成的guid在源代碼中。是否有一種便攜的方式來生成真正的隨機全局唯一標識符(guid)?
許多基於一些內置的guid生成器的實用程序。這些發生器可能包括網卡MAC地址,系統時鐘,僞隨機序列等。
發生器必須是真隨機的。這是因爲我堅信任何試圖降低guid碰撞概率的嘗試都會增加這種可能性。
我曾希望找到一種方法,使用內置在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的範圍並希望將碰撞概率降至最低。