【问题标题】:How to create serial number generator? [closed]如何创建序列号生成器? [关闭]
【发布时间】:2010-12-16 11:47:36
【问题描述】:

如何对序列号生成器进行编程,以便为某些现有软件生成序列号?

【问题讨论】:

  • 您要找什么样的序列号? 1234、1235、1236 或 234XK-773A-...,还是其他?
  • 您的意思是要为其他人创建的受版权保护的程序生成序列号?

标签: c# licensing license-key


【解决方案1】:

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

Guid mySerialNumber = Guid.NewGuid();

【讨论】:

  • 我的意思是,如果我有一个需要序列号解锁的软件,那么我想知道如何编写一个为该软件生成序列号的程序。不是任何特定的软件,只是为了了解和挑战任何非法的东西:)
  • 好吧,从你对“软件”的默默无闻来看,我不得不说你正在冒险进入一些非法的边界。如果您确实在寻找教育信息……人们通常通过反汇编应用程序来构建密钥生成器,以对验证或生成序列的过程进行逆向工程。有时您甚至必须查看机器代码或程序集才能弄清楚它是如何完成的。
  • 如何获取汇编代码?它假设在软件文件中没有?并且它很难学习阅读汇编吗?:)
  • 对不起,尼尔,我不会给你一个具体的答案。但我可以指点你从某个地方开始……informit.com/articles/article.aspx?p=353553
【解决方案2】:

我之前使用过这个CodeProject Article,当我需要为我最近从事的项目做同样的事情时。我发现它非常详细,虽然我没有使用示例中的所有内容,但我确实从中得到了很多。 (我与 CodeProject 或作者无关)

此外,还有一个库可以为您提供所有这些功能,包括许可证文件替换和大量其他功能,但它不是免费的,不幸的是我不记得链接了。我确定用 Google 搜索一下,你会找到的。

【讨论】:

    【解决方案3】:
    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;
    }
    

    【讨论】:

    • 欢迎来到stackoverflow!最好为示例代码提供简短描述以提高发布准确性:)
    【解决方案4】:

    尝试使用Luhn's algorithm 可以测试的数字。这样一来,您就可以让它变得难以捉摸,但仍然很容易确认。这篇文章包含一个 C# 实现的链接。

    【讨论】:

      猜你喜欢
      • 2019-04-13
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-25
      • 2021-04-28
      相关资源
      最近更新 更多