我必须使用验证密钥保护用Java编写的应用程序,该密钥应仅在指定的PC上工作,因此例如应用程序应基于唯一标识符生成计算机ID序列号(例如:硬盘串口,MainBoard串口等......);然后根据这个唯一标识符,另一个程序将生成一个验证密钥。
我已经在.NET应用程序上实现了一个类似的激活系统,生成机器标识符,从WMI获取硬件序列号,如何在Java中获取此值?该解决方案应在Windows,Linux和Mac Os X上独立工作。
如何在Java中检索机器的唯一标识符?那里有一些图书馆,允许这样做吗?
答案 0 :(得分:3)
机器MAC地址(或其中一台机器MAC地址)是一个很好的候选者。它是唯一的,可能比其他硬件标识符更少。这是一段代码:
答案 1 :(得分:1)
我不认为你可以在纯java中获得CPU Id或Harddisk /主板ID。 您最近的是network mac address:
NetworkInterface.getNetworkInterfaces().nextElement().getHardwareAddress();
答案 2 :(得分:0)
您需要调用某些特定于平台的内容。例如,在Windows上,您可以调用一个调用WMI的VB脚本来获取此信息。
注意:如果您知道自己在做什么,那么您使用的任何方法都应该很容易被愚弄。