我已经编写了一个POS应用程序,现在我想创建它的不同版本。基本版本,高级版本和完整版本。因此,如果客户支付更多,他们将在同一应用程序中获得更多功能。是否可以保留一个标准应用程序,但是根据用户输入的许可证密钥,启用/禁用应用程序中的功能。限制只有输入特定键才能执行的部分代码。
任何想法的人...
最佳答案
有很多方法可以做到这一点,如果熟练的技术人员愿意花时间,所有这些方法都是易碎的;-)但是,根据您选择的解决方案,最终需要做更多的工作,因此要切合实际并选择明智地。
对于实际的许可证密钥,我强烈建议您使用标准的公共-私有密钥加密方案(例如rsa)来生成它。也就是说,您将创建一个许可证密钥文本字符串,其中包含用户名(以便您可以跟踪非法共享的许可证密钥)以及有关应激活哪些代码的信息。使用私钥对您的许可证进行加密,然后分发包含公钥的应用程序。应用启动时,您将阅读许可证密钥并使用公共密钥对其进行解密。这几乎使人们无法修改或生成伪造密钥。
现在,对于实际的代码激活,我在生产代码中使用了以下两个选项:要么简单地在许可证密钥中包含标志,以表明代码的哪些部分应处于 Activity 状态,然后使用基本的if then语句将其激活。或者,根据您的编程语言,您可以动态地从许可证密钥中加载代码段,从而使得这些部分的代码在没有适当的密钥文件的情况下就无法使用(我在Java中使用自定义类加载器来完成此操作)....最后一个解决方案比第一个解决方案需要更多的工作,因此在开始设计解决方案之前请仔细考虑。
关于versioning - 通过许可证 key 启用/禁用代码访问-应用程序版本控制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3111510/