3

I have written a POS application, and now i want to create different versions of it. Something like a basic version, a premium version and a Full version. So if a client pays more they get more features in the same application. Is it possible that i could keep one standard application but features in my application get enabled / disabled depending upon what license key user enters. Restrict parts of code that can be executed only if a certain key was entered.

Any ideas guys...

4

1 回答 1

3

有很多方法可以做到这一点,如果技术熟练的人愿意投入时间,所有这些方法都是可以破解的;-) 但是,根据您选择的解决方案,最终将需要更多的工作,所以要现实并选择明智地。

对于实际的许可证密钥,我强烈建议您使用标准的公私密钥加密方案(例如 rsa)生成它。也就是说,您创建一个许可证密钥文本字符串,其中包含用户的名称(以便您可以跟踪非法共享的许可证密钥)以及有关哪些代码应该处于活动状态的信息。使用私钥加密您的许可证并分发包含公钥的应用程序。当应用程序启动时,您读取许可证密钥并使用公钥对其进行解密。这将使人们几乎不可能修改或生成假密钥。

现在对于代码的实际激活,这里有两个我在生产代码中使用的选项:要么简单地在许可证密钥中包含标志,说明代码的哪些部分应该处于活动状态,然后使用基本的 if then 语句激活它。或者,根据您的编程语言,您可以从许可证密钥动态加载代码片段,使这些代码部分在没有适当的密钥文件的情况下无法使用(我在 java 中使用自定义类加载器执行此操作)......但是,这个最后一个解决方案比第一个解决方案需要更多的工作,所以在开始设计解决方案之前要考虑清楚。

于 2010-06-24T18:13:20.307 回答