最好的意思是更多的时间测试,更容易实现,更容易让用户使用。我不希望我的许可废话干扰他们的工作。
我正在考虑启动一个WCF服务,如果它是有效的许可证,请检查我的许可证数据库,如果是,则发送一个True。
如果返回的响应为False,则在告诉他们修复许可证后关闭程序。
你认为这是处理它的好方法吗?
答案 0 :(得分:1)
您需要开发或找到一种算法,为您的许可证密钥创建足够复杂的字符串。
根据用户特有的一些信息(如电子邮件地址)生成许可证密钥。
然后,您的程序将要求用户输入其电子邮件地址和许可证密钥。然后,它将通过运行您首先生成它的相同算法来确保许可证密钥正确。
答案 1 :(得分:1)
我过去使用的方法虽然简单但有效。我为我的软件生成了大约1000个密钥,并通过散列算法运行它们。然后我将它们包含在我的程序中(可能是一个占用很少空间的数组)
然后我向每个客户发出1000个生成的唯一密钥,当他们将其输入我的软件时,使用相同的散列算法对其进行散列,并与包含的哈希进行比较。如果它比较为true,则表示您已注册,因此请将其保存在配置文件中。
我经常用另一个内部版本号更新程序,并重新创建该构建中包含的键和哈希值。你只需要跟踪哪些键与什么构建有关,但是你可以用一个很好的数据库来控制它。
此系统从未遇到过任何问题,因为它可以完全自动化。
答案 2 :(得分:0)
您可以尝试使用用户名+ dob + user-selected-password生成许可证密钥字符串。
OR
使用用户的h / w序列号,并在安装后在线提供许可证密钥。我假设此时每个许可证只允许一台计算机。
答案 3 :(得分:0)
如果网络连接不可用,则ping Web服务将无效。您应该使用ping和宽限期的组合。如果客户无法在“X”天内验证/激活许可证,那么您将其声明为未经许可。
尝试支持此方案的CryptoLicensing。
答案 4 :(得分:0)
我建议你看一下OffByZero Cobalt(强制性免责声明:它是由我共同创立的公司制作的)。你最好购买现有的成熟解决方案,而不是自己动手。
我们在Developing for Software Protection and Licensing中指出:
我们相信大多数公司都愿意 购买一个更好的服务 高质量的第三方许可 系统。这种方法将释放你的 开发人员致力于核心工作 功能,并将减轻 维护和支持费用。它也是 可以让你利用 许可提供的领域专业知识 专家,并避免释放 容易破解的软件。