我想生成'hash'来识别给定的机器,如何在Java中做到这一点?

时间:2011-07-25 12:30:54

标签: java security hardware

我想为给定的机器生成'hash',因此我的应用程序只能在这台特定的计算机上运行。 我需要阅读一些硬件特定的ID,字符串,序列号。我需要在Java中这样做:/ 我想这会很难,有什么想法吗? 而且我知道这是一种“通过默默无闻的安全”,但这只需要简单的保护(还有其他的,比如通过SSL连接到主服务器等)。

3 个答案:

答案 0 :(得分:1)

NetworkInterface类可用于获取MAC地址等内容。 System.getProperty()也可用于获取操作系统信息等。 当然,这两个值都可以改变。

答案 1 :(得分:1)

真正解决方案的出发点是Java的TPM库。

这是LGPL,可以在这里检索http://trustedjava.sourceforge.net/

这可以保证为所有较新的CPU提供唯一的密钥。

答案 2 :(得分:0)

有一点,那并不是唯一的,但许多“许可证管理者”仍然使用的是主机名。该检查可能会失败,用户可以继续切换其计算机的名称,但大多数用户都懒得这样做。

Inet4Address.getLocalHost().getCanonicalHostName();

在许可证文件中输入该名称(如果您要创建许可证),然后在“文档”中签名。