通过许可证密钥启用/禁用代码访问 - 应用程序版本控制

时间:2010-06-24 15:39:38

标签: versioning code-access-security license-key

我已经编写了一个POS应用程序,现在我想创建它的不同版本。像基本版本,高级版本和完整版本。因此,如果客户付出更多,他们会在同一个应用程序中获得更多功能。我是否可以保留一个标准应用程序,但我的应用程序中的功能可以启用/禁用,具体取决于用户输入的许可证密钥。限制只有在输入某个密钥时才能执行的代码部分。

任何想法的人......

1 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点,如果熟练的人愿意把时间花在它上面,所有这些都是可以破解的;-)但是,根据你选择的解决方案,它将需要逐步完成更多工作,所以现实并明智地选择。

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

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