安全地将工作应用程序从一台电脑复制到另一台电脑

Secure of copying working application from one pc to other

我创建了 JavaFx application.Now 我想保护它不被复制给其他人 computer.More 详细 我将我的应用程序卖给一位客户,在安装此应用程序后我需要保护它的副本它从一台计算机到 others.How 我可以防止从其他计算机复​​制它 computer.Application 是 jar 格式

理论上是不行的。


但是:您可以做一些事情来减少这种机会。我会从最安全的开始提到它们。

即:远程许可(a.k.a将许可保存在服务器中)。您的应用程序可以生成一种独特的 id 并且无论何时启动,它都会检查此 id 是否在远程服务器的数据库中。 (这里的好选择是 RESTful 服务作为后端。然后一个 HTTP 请求就足够了。)如果这个 id 在远程不存在,你的程序终止。

What if client does not have internet connection, should it be terminated?

有一个选项可以处理这个问题,但仍然可以 "bypassed"。每当它启动时(通过互联网连接),它都会在本地存储 "positive" 答案(文件、注册表或其他东西)。然后,只要客户端未连接到互联网(远程检查失败),您的程序就会开始在本地搜索 "positive" 答案。如果找到它,它就会启动。

What if client reverse engineer the application, finds where it stores the "positive" answer, creates it manually and then adds a rule to his firewall in order to prevent your application speak with the remote?

你告诉我。我能想到的最好的方法是在远程检查失败时检查防火墙规则。


第二个选项: 创建第二个 .jar,生成一种 "positive" 答案(如上所述)。 运行 这个 .jar 给你的客户。然后从他的电脑中删除它。然后您的应用程序会查找此 "positive" 答案。如果存在,应用运行s。否则,它终止。如果他在另一台电脑上复制应用程序,它不会 运行 因为你没有 运行 那里的第二个 jar。

What if he reverse engineer your app and finds where and how you store this "positive" answer?

他将能够复制您的申请,而您永远不会知道。