在我的整个职业生涯中,我几乎都致力于构建解决方案(为单个客户定制应用程序)。现在我的公司正在为大众开发软件,大量的包装正在等待着我们。
我想问一下关于软件授权的问题。如何生成序列号和激活号。一般来说,我对软件许可有哪些选择?
我意识到这是一个普遍问题,但它是一个对话的开始。

有帮助吗?

解决方案

我们的许可模型使用公钥/私钥加密技术。他们向我们发送他们的姓名和联系方式,我们使用私钥对其进行加密。然后,加密的文件被发送回被许可人,他们将其输入到应用程序中。该应用程序将我们的公钥嵌入到二进制文件中(或者如果它们有网络连接,则会将其从我们的网站上拉下来),并使用它来解密许可证信息。如果解密的许可证与他们输入的详细信息匹配,那么他们就被授权使用该产品!

通过使用私钥/公钥加密,我们让应用程序相信许可证密钥中的数据实际上来自我们(许可证的真实性)

您还可以用它做其他一些巧妙的事情,例如将订阅级别编码到许可证密钥中。应用程序将解密许可证密钥,并发现它们只被允许使用某些功能。

但这可以被攻击。例如,黑帽可以删除二进制文件的整个许可证密钥检查部分,或者将应用程序中存储的公钥更新为他们生成的公钥。然后他们将能够使其接受自己的许可证。然而,由于我们的应用程序不是主流,我们不认为这是一个主要威胁。

其他提示

这篇关于盗版的文章是由一个构建和销售小型 .NET 应用程序的人撰写的 非常 内容丰富。他的应用程序被盗版,这给了他一个有趣的视角:

http://kalzumeus.com/2006/09/06/yo-ho-me-hearties-yo-ho/

他的观点基本上是,你需要让激活系统成为普通用户的障碍——如果你的应用程序足够流行以至于被破解组织盗版,你就无能为力。最重要的是确保您的程序的破解版本(如果确实存在)对 99% 的公众来说是不可见的。

如果您使用 .Net 来构建解决方案,那么可能值得一试 谢奥. 。我之前曾使用它们来实施许可,并且它们与 .net 解决方案很好地集成。您可以执行诸如需要基本序列密钥来激活产品、设置激活服务器以及要求人们激活和停用其产品以在计算机之间使用和移植之类的操作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top