Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅为一个计算机系统设置Java应用程序_Java_Security_Netbeans_Privacy - Fatal编程技术网

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

仅为一个计算机系统设置Java应用程序,java,security,netbeans,privacy,Java,Security,Netbeans,Privacy,我正在做一个项目,我希望我的应用程序只能在一个系统上运行

我正在做一个项目,我希望我的应用程序只能在一个系统上运行<我所希望的是,当我把我的项目交给某个特定的人时,他不能复制我的项目,可以在任何其他计算机系统上运行。 我正在研究Java8IDE(NetBeans)


谢谢

您可以要求客户端提供其
MAC
地址,并将其包含在代码中,然后使用java代码获取执行该地址的计算机的
MAC
地址,然后将其与最初存储在您的程序中的客户端的
MAC
地址进行比较。如果您的程序终止代码不匹配。 您可以从以下示例中找到用于检索MAC id的代码 简短的回答:“你不能”

详细回答:将应用程序限制在一台机器上几乎是不可能的-需要多年的开发才能实现次要机器限制;看看所有的现代游戏吧——它们中的大多数都有某种DRM,所有这些游戏都会被青少年迅速破解

现在:你可以读取一些你的系统特有的值,你也可以编写和搜索一些特定的注册表值,但是如果你的用户真的想复制你的应用程序,那么这些都不会对你有帮助,即使克隆一个操作系统并将其写入第二台计算机的硬盘现在也没有问题


tl;dr:如果你真的需要实施有效的DRM。。。好。。。java需要非常复杂的本机代码,这对您来说不会有多大帮助。使用java,您所能做的最好的事情就是混淆代码-只有付费破解者才能破解混淆良好的java应用程序,而且破解本地应用程序也不会有困难。

如果您需要脱机解决方案,您可以使用这些功能中的任何一个

但最好的解决办法总是将应用程序的一部分保存在您自己的服务器中,当安装应用程序时,您只能为这台特定的机器完成它

双向 一路

  • 构建自己的Web服务以完成应用程序的功能,当应用程序使用此Web服务时,您需要确保这是同一台机器(通过IP、mac地址)

二路

  • 安装时,收集硬件信息并将其发送到服务器以保存在那里
  • 然后,当使用任何脱机功能时,您需要通过重新生成机器信息向服务器请求执行此操作的权限

请记住,有人可以对您的代码进行反向工程,因此我更喜欢第一种方式

您可以参考此链接:我希望它能有所帮助!!!或者检查系统的mac地址以确认它与您想要的系统相同:-)任何登录的用户或运行的应用程序都可以轻松更改mac地址。这不提供任何身份安全性。因此,除了mac之外,还有其他选择吗?几乎所有选择。整个操作系统和硬件,但是你将很难使用Java。你真的应该熟悉一种叫做“google”的东西