2009-08-26 116 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万个序列的几率很小,但很难说,因为我知道计算的唯一途径它溢出了一倍)。