Java中的串行密钥生成和验证(机器唯一标识符)

时间:2012-03-05 10:35:27

标签: java uniqueidentifier license-key activation-codes

我必须使用验证密钥保护用Java编写的应用程序,该密钥应仅在指定的PC上工作,因此例如应用程序应基于唯一标识符生成计算机ID序列号(例如:硬盘串口,MainBoard串口等......);然后根据这个唯一标识符,另一个程序将生成一个验证密钥。

我已经在.NET应用程序上实现了一个类似的激活系统,生成机器标识符,从WMI获取硬件序列号,如何在Java中获取此值?该解决方案应在Windows,Linux和Mac Os X上独立工作。

如何在Java中检索机器的唯一标识符?那里有一些图书馆,允许这样做吗?

3 个答案:

答案 0 :(得分:3)

机器MAC地址(或其中一台机器MAC地址)是一个很好的候选者。它是唯一的,可能比其他硬件标识符更少。这是一段代码:

答案 1 :(得分:1)

我不认为你可以在纯java中获得CPU Id或Harddisk /主板ID。 您最近的是network mac address

NetworkInterface.getNetworkInterfaces().nextElement().getHardwareAddress();

答案 2 :(得分:0)

您需要调用某些特定于平台的内容。例如,在Windows上,您可以调用一个调用WMI的VB脚本来获取此信息。

注意:如果您知道自己在做什么,那么您使用的任何方法都应该很容易被愚弄。