繁体   English   中英

为Java桌面应用程序实施防盗版系统

[英]Implement piracy prevention system for a Java desktop application

我正在尝试用Java创建桌面应用程序,

  1. 它不应该在我喜欢的其他机器上运行。
  2. 它不应在特定的到期数据之后运行。

有什么好主意吗? 请帮我。 提前致谢。


据我所知(很少),我有一些建议:

对于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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM