需要了解许可证密钥算法



我正在尝试为我的软件添加软件许可,我计划出售该软件(这意味着如果许可证正确,则允许访问该软件。否则,中断访问(。我没有任何服务器,因此无法连接到它们。我将使用付费在线服务之一来销售我的软件(我也不喜欢使用他们的服务器支持进行许可,因为现在是我休息的时候了(。因此,我决定使用客户端验证。无论如何,我对如何生成许可证(许可证算法(以及如何验证它(根据许可证算法(感到困惑。我可以按照我的方式做到这一点,但不喜欢弄乱这个安全问题,所以决定接受您的专业知识帮助。请告诉我/告诉我/给出如何创建此许可证生成器和验证器的示例。而且,如果您要发布带有算法的示例,如果您认为它很复杂,请解释一下。因为只有我才能创建自己的一个

除此之外,我还有另一个疑问。也就是说,一个软件只有 1 个许可证密钥可以吗?因此,它可以毫无问题地硬编码到软件中。

请帮忙..

使用公钥密码系统。 该应用程序只需要包含许可证签名机构的公钥,因此它没有生成新许可证所需的密钥(只有您拥有该密钥(。 签名的文档可以列出应启用/禁用的任何可选功能。 此处提供了用于对文件进行签名和验证签名的示例代码的教程:http://docs.oracle.com/javase/tutorial/security/apisign/index.html

实际上,任何保护都可以破解。问题是黑客需要付出多少努力。

拥有 1 个硬编码密钥可能是您可以选择的最糟糕的解决方案,只要密钥可以轻松共享。密钥应为 f(system_id(,因此密钥共享将不起作用。

具有硬编码密钥验证也不好。黑客只会将这部分代码复制/粘贴到注册机中。

更好的解决方案是像 http://activation-cloud.com 一样检查服务器端的密钥。但目前只是C++。

正如

@James Youngman所说 - PPK是要走的路。如果需要使用它的快捷方式,请参阅 TrueLicense。

至少,看看设计注意事项,以了解

如果您想自己开始这个设计注意事项,则必须注意什么

最新更新