Java:非基于 MAC 的唯一计算机 ID

标签 java uniqueidentifier

找遍了,还是没找到解决办法。我需要为产品 key 系统创建一个(半)唯一的计算机 ID。由于多种原因,它不能从 MAC 地址派生:

  1. MAC地址可变
  2. 如果用户更换网卡,程序将停止运行
  3. 如果计算机没有网卡,将无法工作

与第一个相比,我更关心后两个。

最好以主板/CPU 的序列号为准。独立于平台的解决方案会很棒,但特定于平台的解决方案也可以(只要有适用于 Windows/OSX/Linux 的解决方案)。

抱歉,如果之前已经介绍过,我只是找不到。

最佳答案

我认为有一些基于创建计算机“指纹”的解决方案。我所在的一个客户站点正在研究这一点,以此作为确保单点登录解决方案的用户身份的一种方式。最后,他们认为这太难了,也太容易绊倒了,所以他们放弃了。

CPU id(我认为)可以在 BIOS 中禁用。所以你需要找到你可以访问的东西,这就是为什么大多数人似乎都在寻找 MAC 地址。但正如你所说,他们可以改变。但其他一切也可以。

您可能需要考虑的是,某项更改的频率是多少? MAC 可以更改,但多久更改一次?对于更换网卡的奇怪时间,使用新卡重新建立他们的 ID 真的会伤害用户吗?

也许这可能会起作用,因为在产品注册过程中要求用户提供密码或短语。然后注册自己机器的MAC地址。如果他们更换了网卡,他们可以通过密码或短语与您联系,您可以使用新的 MAC 地址进行重置。它不会那么简单,但一般概念可能适合您。

最后从总体上考虑一下您的产品。阻止未经授权的用户需要做多少工作?拥抱这些用户并给他们一个注册的理由会更好吗?也许是您赠送的软件的精简版。或者在中央服务器上注册为您提供额外的数据和 Material 等。

有很多不同的商业模式围绕着它超越了传统的商业模式并且仍然赚钱。

关于Java:非基于 MAC 的唯一计算机 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5320977/

相关文章:

java - Eclipse 格式化程序允许对齐 = 和 Javadoc 选项卡

java - 使用 uniqueidentifier 主键获取实体时出现问题

sql-server - 使用 DELETE - OUTPUT - INSERT 更新身份

ios - 如何在 Swift 中获取唯一的设备 ID?

java - 在数组中找到两个具有精确部分的组

java程序在比较2个文件时找出错误的列

java - 使 Android EditText 中的解析更容易

java - 对同一方法使用不同的数据类型

sql-server - 将数据库部署到 Windows Azure 时出现 Uniqueidentifier 错误

python - RFID唯一序列号转换