[英]Implement piracy prevention system for a Java desktop application
我正在尝试用Java创建桌面应用程序,
有什么好主意吗? 请帮我。 提前致谢。
据我所知(很少),我有一些建议:
对于Point1:通过对我的应用程序的启动进行硬编码以检查ProcessorId(因为它是唯一的),如果它是有效的,则应执行,否则应显示“已过期”警报。 但是为此,我应该给每个用户一个单独的jar setUp,我不介意。
对于Point2:应维护一个加密文件,该文件将存储当前日期。 在应用程序的每次启动过程中。 如果当前日期大于文件中的日期,我将更新文件中的日期字段。 如果没有,我将显示“已过期”警报。
这可能看起来很有趣,但这是我的想法。
无论您做什么,都需要混淆代码(至少)并加密/破坏使用的任何字符串文字。 如果您阅读processorId,将会收到客户的愤怒呼叫,这些客户的笔记本电脑刚从服务中拿出,他们更换了整个主板(今天非常普遍)。
搭便车用户可以简单地删除任何加密文件。 您必须将其隐藏在好的地方。 在Windows上,人们喜欢在注册表中玩这种捉迷藏游戏,尤其是其classid部分。
只是一些随机的想法...
对于要求1:
您可以维护一个数据库,其中包含为用户生成的密钥。 在启动应用程序时,它可以请求一个密钥,然后调用数据库以将密钥更改为已使用。 您可以为每个用户提供一个唯一的密钥,以便在启动时输入。 该系统需要在线访问才能使用您的应用程序,以便可以对数据库进行检查。
对于要求2:
您可以维护键以及与它们关联的日期,也可以在启动时对照正确的日期进行检查。 如果日期已过,则用户将收到过期通知。
用户只需要输入一次密钥...之后,您的软件便会记住该密钥,并且仅在旧密钥过期后才要求新密钥。
在这里,与Marko的想法之间的权衡是,这种系统需要Internet访问才能检查数据库。
编辑:
如上所述的这种方法不会阻止某人简单地复制JAR并将其移动到另一台机器。 您可以根据机器的MAC地址生成密钥,然后在启动螺母处检查系统地址,这将引起与上述Marko相同的问题,即更换主板会更改MAC地址。
编辑2:
我对这个问题的思考越深,就越清楚我需要拥有并维护服务器端连接以满足您的需求。 另外,我不认为Java是您的最佳选择,因为有人可以反编译您的JAR。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.