在我的职业生涯中,我一直致力于构建解决方案(为单个客户定制应用程序)。现在我的公司正在为大众开发软件,很多包装都在等着我们
我想问一下许可软件。如何生成序列号和激活号。一般来说,我对许可软件有哪些选择
我意识到这是一个普遍的问题,但它是一个对话启动器。
答案 0 :(得分:8)
我们的许可证模型使用公钥/私钥加密。他们向我们发送他们的姓名和联系方式,我们使用私钥加密。然后将加密的文件发送回他们输入应用程序的许可证。应用程序将我们的公钥嵌入二进制文件中(或者如果它们与网络连接,则将其从我们的站点中删除),并使用它来解密许可证信息。如果解密的许可证与他们输入的详细信息相符,则他们被许可使用该产品!
通过使用私钥/公钥加密,我们为应用程序提供了一个信任,即许可证密钥中的数据实际来自我们(许可证的真实性)
您可以使用其他简洁的方法,例如将订阅级别编码到许可证密钥中。应用程序将解密许可证密钥,并看到它们只允许使用某些功能。
但这可能会受到攻击。例如,blackhat可以删除整个许可证密钥检查二进制文件的一部分,或者将应用程序中存储的公钥更新为他们生成的公钥。然后他们就可以接受自己的许可。然而,由于我们的应用程序不是主流,我们不认为这是一个主要威胁。
答案 1 :(得分:1)
这篇关于构建和营销小型.NET应用程序的人的盗版文章非常提供信息。他的申请是盗版的,这给了一个有趣的观点:
http://kalzumeus.com/2006/09/06/yo-ho-me-hearties-yo-ho/
他的观点基本上是你需要让激活系统成为普通用户的障碍 - 如果你的应用程序足够流行,可以被破解组盗版,你就无能为力。最重要的是要确保程序的破解版本(如果确实存在)对99%的公众是不可见的。
答案 2 :(得分:-1)
如果您使用.Net来构建解决方案,则可能需要查看Xheo。我之前使用它们来实现许可,并且它们与.net解决方案很好地集成。您可以执行诸如需要基本序列密钥来激活产品以设置激活服务器并要求人们激活和停用其产品以及在机器之间移植它们之类的事情。