2009-11-13 34 views
1

如何编写序列号生成器,为某些现有软件生成序列号?如何创建序列号发生器?

+1

你在找什么样的序列号? 1234,1235,1236或234XK-773A -...,还是别的? – jac 2009-11-13 23:17:27

+0

你的意思是你想为其他人创建的受版权保护的程序生成序列号? – RCProgramming 2010-11-16 01:15:57

回答

3

您没有声明任何具体要求,但可以使用GUID。

Guid mySerialNumber = Guid.NewGuid(); 
+0

我的意思是,如果我有一个需要串行解锁的软件,所以我想知道如何编写一个为该软件生成连续数据的程序。 没有任何特定的软件,只为知道和challanging没有任何回教:) – nir 2009-11-13 23:21:12

+4

好吧,从你对“软件”的默默无闻,我不得不说,你正冒险进入非法的边界。如果您确实在寻找教育信息......人们通常会通过拆分应用程序来构建关键生成器,以反向验证或生成连续剧的过程。有时甚至必须查看机器代码或程序集才能了解它是如何完成的。 – 2009-11-13 23:25:35

+0

我如何达到汇编代码? 它假设在软件文件中没有? ,并很难学习阅读大会?:) – nir 2009-11-13 23:28:43

3

我的时候已经需要我做的项目,我最近处理的同样的事情之前已经使用这个CodeProject Article。我发现它非常详细,虽然我没有使用样本中的所有内容,但我确实从中得到了很多。 (我没有隶属于CodeProject或作者)

另外还有一个库,它可以为你提供所有这些功能,包括许可证文件替换和其他功能堆,但它不是免费的,不幸的是我不记得了链接。我相信有一些Googgling,你会找到它。

1

尝试一些你可以测试使用Luhn's algorithm。这样,你可以使它变得难以理解,但仍然很容易确认。该文章包含一个C#实现的链接。

2
public static string GetSerialKeyAlphaNumaric(SNKeyLength keyLength) 
{ 
    string newSerialNumber = ""; 
    string SerialNumber=Guid.NewGuid().ToString("N").Substring(0, (int)keyLength).ToUpper(); 
    for(int iCount=0; iCount < (int) keyLength ;iCount +=4) 
     newSerialNumber = newSerialNumber + SerialNumber.Substring(iCount, 4) + "-"; 
    newSerialNumber = newSerialNumber.Substring(0, newSerialNumber.Length - 1); 
    return newSerialNumber; 
} 
+0

欢迎来到stackoverflow!提供示例代码的简短说明总是更好,以提高发布准确性:) – 2012-10-27 00:44:41