2009-08-26 35 views

回答

16
+1

+1這一點,除了這將是一個痛苦的事實,這將是一個用戶輸入(發送給他們一封電子郵件,以便他們可以複製/粘貼)它是獨一無二的,很可能不會重新生成。 – 2009-08-26 19:28:56

+4

我不知道這個。如果宇宙的膨脹和收縮實際上是週期性的而不是一次性的,那麼你最終會得到重複的。 – MusiGenesis 2009-08-26 20:12:35

+2

我認爲Guid.NewGuid()已經使用CurrentUniverseSize(),所以它可以工作。 – 2009-11-16 14:29:44

1

你或許應該只使用GUID

2

Guid.NewGuid()。toString()方法

如果你不介意一個36字符長度。

4

這取決於你的目標。一個GUID很容易生成,但如果用戶必須手動輸入,則會很痛苦。如果通過點擊電子郵件中提供的URL(例如),或者您可以期望用戶從激活電子郵件中複製和粘貼值,就可以實現這種情況。

在其他情況下(例如激活碼以某種方式物理打印在包裝上的收縮包裝軟件),用戶將手動輸入代碼。在這種情況下,最好使用類似於Microsoft和Blizzard所使用的方法:生成一個由五組隨機字母數字字符組成的代碼(如果要消除激活代碼包含類似內容的風險,則省略元音4SHIT),並檢查生成的每個代碼與主列表是否重複。 (儘管我認爲從{1,2,...,34,26 - 1}中提取的包含副本的10萬個序列的機率很小,但很難說,因爲我知道計算的唯一途徑它溢出了一倍)。