【发布时间】:2009-06-30 14:36:08
【问题描述】:
如果我对我的应用程序实施许可限制,比如应用程序第一次运行时,那么我的应用程序是否应该每次都检查限制(可能是加密的许可文件)?你如何设计这部分?什么是最好的方法?基本上我想以某种方式节省 CPU 周期(加密意味着解密等等等等)。我希望你能理解我的担忧。
【问题讨论】:
如果我对我的应用程序实施许可限制,比如应用程序第一次运行时,那么我的应用程序是否应该每次都检查限制(可能是加密的许可文件)?你如何设计这部分?什么是最好的方法?基本上我想以某种方式节省 CPU 周期(加密意味着解密等等等等)。我希望你能理解我的担忧。
【问题讨论】:
这实际上取决于您希望在应用程序中如何处理它,以及您希望对用户采取什么类型的操作。
如果您只检查第一次加载,您将需要将验证的成功/失败存储在某处,以便您的应用程序知道它是否合法。这将成为一个问题,因为您需要验证您的系统是唯一实际存储/更新该信息源的东西。
【讨论】:
取决于它是什么类型的应用程序。
如果它是一个桌面应用程序,一旦验证了许可证密钥……您可以在某个地方设置一点,让您的软件知道它在许可模式下运行。确保该位位于应用程序文件夹之外的某个位置(这样,如果有人直接将您的应用程序复制到另一台机器上,您的软件就会知道它不再获得许可)。
如果您尝试开发一个网络应用程序,您的站点目录中某处的加密许可证文件似乎是一种流行的解决方案。该文件包含许可证类型和域名...然后您的 Web 应用程序会根据每个请求验证许可证(有点开销,但您可以使该代码闪电般快速)。
【讨论】:
这取决于您真正希望您的许可有多安全。我建议在每次应用程序启动时检查许可证密钥——就 CPU/内存而言,这不应该太昂贵。如果你只在第一次运行时检查,那么它很容易被黑客入侵,并且可以一遍又一遍地删除密钥并安装在另一台计算机上。
【讨论】: