生成软件激活码的最佳方法是什么?

4

如何随机生成一些不太可能再次生成的激活码以用于软件激活?我正在为 Web 应用程序制作自动履行系统。

我使用的是 C# 语言。

4个回答

16

1
对于这个来说,+1,除了用户输入会很麻烦(给他们发送电子邮件,让他们可以复制/粘贴),它是独一无二的,很可能不会再生成。 - Tom Anderson
5
我不确定这件事。如果宇宙的扩张和收缩实际上是循环的,而不是一次性的,那么最终会出现重复。 - MusiGenesis
2
我认为Guid.NewGuid()已经使用了CurrentUniverseSize(),所以无论哪种方式都可以工作。 - Mike Powell
我同意@logicnp的观点,这对于激活码来说是行不通的,因为您的软件需要能够读取嵌入在Guid中的信息,以确保它已被激活。 - Sean Kearon

4
这取决于您的目标。生成GUID很简单,但是如果用户必须手动输入它,则非常麻烦。如果激活是通过(比如)点击电子邮件中提供的URL进行的,或者您可以期望用户从激活电子邮件中复制并粘贴值,那么这没问题。
在其他情况下(例如,激活代码以某种方式在包装上物理印刷出来的收缩软件中),用户将手动输入代码。这种情况下,最好使用类似微软和暴雪使用的方法:生成由五组五个随机字母数字字符组成的代码(如果您想消除激活代码包含4SHIT之类的内容的风险,则省略元音),并针对重复项检查生成的每个代码是否与主列表相同。(虽然我认为即使从{1, 2,...34 ^ 26-1}中提取100,000个序列中包含重复项的几率也非常小。很难说是因为我所知道的唯一计算它的方法会溢出双倍。)

2

Guid.NewGuid().ToString()

如果您不介意长度为36个字符。


1

你应该只使用 Guid。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接