代码之家  ›  专栏  ›  技术社区  ›  abmv

应用程序验证许可证强制执行?

  •  2
  • abmv  · 技术社区  · 15 年前

    如果我对我的应用程序实施许可限制,比如说在应用程序第一次运行时,那么我的应用程序是否应该每次检查这些限制(可能是加密的许可文件)?你是如何设计这部分的?最好的方法是什么?基本上,我想以某种方式节省CPU周期(加密意味着解密,废话)。我希望你理解我的担心。

    4 回复  |  直到 14 年前
        1
  •  1
  •   Mitchel Sellers    15 年前

    这实际上取决于您希望如何在应用程序中处理它,以及您希望为用户采取什么类型的操作。

        2
  •  1
  •   Justin Niessner    15 年前

    取决于它是什么类型的应用程序。

    如果它是桌面应用程序,一旦验证了许可证密钥……您可以在某个地方设置一点,让您的软件知道它正在以许可模式运行。确保该位在应用程序文件夹之外的某个位置(这样,如果有人直接将应用程序复制到另一台计算机上,您的软件就会知道它不再获得许可)。

    如果你想做一个网络应用,一个加密的许可证文件在你的网站目录似乎是一个流行的解决方案。文件包含许可证类型和域名……然后您的Web应用程序会根据每个请求验证许可证(有点开销,但您可以使代码快速运行)。

        3
  •  0
  •   James Conigliaro    15 年前

    这取决于您真正希望自己的许可证有多安全。我建议在应用程序每次启动时检查一个许可证密钥——从CPU/内存的角度来看,这不应该太贵。如果您只在第一次运行时进行检查,那么它很容易被黑客攻击,并且密钥可以被一次又一次地删除并安装在另一台计算机上。

        4
  •  0
  •   Naaff    15 年前

    一般来说,大多数第三方许可解决方案 FLEXnet RLM 建议您至少在程序每次运行时验证应用程序许可证。通常这样做不太贵。

    在某些情况下——而且您必须确定这是否适用于您——更频繁地进行许可检查是有意义的。例如,一些软件单独许可程序的组件,每次访问该组件时检查其许可证。使用商业应用程序,像上面提到的,这并没有那么贵,所以它是非常常见的。