仅为一个计算机系统设置Java应用程序

时间:2014-09-14 16:20:10

标签: java security netbeans privacy

我正在开发一个项目,我希望我的应用程序只能在一个系统上运行!所有我想要的是,当我将项目发送给某个特定的项目并且他无法复制我的项目时可以在任何其他计算机系统上运行。 我正在使用Java 8 IDE(NetBeans)。

由于

3 个答案:

答案 0 :(得分:3)

如果您需要离线解决方案,则可以使用其中任何一项功能

Get hardware details

但总是最好的答案是将应用程序的一部分保留在您自己的服务器中,在安装应用程序时,您只能为此特定的此机器完成它。

两种方式

方式No.1

  • 构建您自己的Web服务,完成您的应用程序功能,当应用程序使用此Web服务时,您需要确保这是相同的计算机(通过IP,MAC地址)

Way No.2

  • 安装时收集硬件信息&将它发送到您的服务器以将其保存在那里。
  • 然后在使用任何离线功能时,您需要通过重新生成机器信息从服务器请求权限

请记住,有人可以对代码进行逆向工程,所以我总是喜欢第一种方式

答案 1 :(得分:1)

您可以向客户询问他的MAC地址并将其包含在您的代码中,然后使用java代码获取执行它的计算机的MAC地址,然后将其与客户端的{{1}进行比较最初存储在你的程序中。如果程序终止程序的代码不匹配。 您可以从以下示例中找到用于检索MAC ID的代码 Get MAC Address of System in Java

答案 2 :(得分:0)

简短回答:"你不能"。

答案很长:几乎不可能将您的应用程序限制在一台机器上 - 需要多年的开发才能实现次要机器限制;只看一下所有现代游戏 - 其中大部分都有某种DRM,所有这些都会被青少年迅速破解。

现在:您可以阅读一些可能对您的系统来说唯一的值,您也可以编写&搜索一些特定的注册表值 - 但如果您的用户真的想要复制您的应用程序,即使克隆操作系统并将其写入第二台计算机的硬盘驱动器上,所有这些都无法帮助您。

tl; dr:如果你真的需要实现工作DRM ......那么......你不会对Java有所了解,这需要非常复杂的本机代码。使用java,你可以做的最好的事情是混淆你的代码 - 只有付费的破解者能够破解一个混淆得很好的java应用程序,而且那些也很难破解你的原生应用程序。