主板序列号的替代品,用于唯一标识符?

主板序列号的替代品,用于唯一标识符?

我需要使用一个唯一的 ID 来识别 PC,即使在重新加载操作系统后也是如此。在对最佳唯一标识符进行了一些研究后,我决定使用主板序列号。但在我的计算机上,序列号返回 null。除了 MAC 地址之外,还有其他我可以使用的唯一标识符吗?

PS C:\Users\user\Desktop> wmic baseboard get product,Manufacturer,version,serialnumber
Manufacturer  Product  SerialNumber  Version
LENOVO        LENOVO   NONE          NONE

答案1

我建议看一下 Code Project 文章
为计算机生成唯一密钥(指纹)以用于许可目的

您将在那里找到作者找到的 C# 代码,他自己使用该代码来满足其许可需求。

作者列出了这些非常明智的观点:

  • 仅从主板、处理器和 BIOS 生成密钥,因为用户通常不会更改这些部分。
  • 不要使用 MAC ID、显卡 ID 和磁盘 ID,因为更改这些设备很常见。
  • 获取设备 ID 需要花费大量时间。因此,请将指纹生成函数设为静态,并将其保存在静态变量中,以便在整个应用程序中仅生成一次密钥。

关于主板序列号返回为空,这是另一回事,值得进一步研究。文章中包含的代码可能工作得更好,或者在主板序列号无法访问的情况下,CPU 和磁盘可能可以正常工作。

我注意到,您不需要使用普遍可用的数据的函数,因为不同的硬件可能没有您想要的所有序列。您所需要的只是连接来自多个来源的数据,跳过不可用的数据,只要合理地确保从可用数据中得出的总指纹字符串将非常独特即可。

答案2

主板序列号是一个很好的标识符,但是并非所有制造商都将其编码在固件中

MAC 地址没问题,但选择哪一个呢?笔记本电脑可以通过以太网、板载 WiFi 或 USB WiFi 连接,以获得更好的性能。

有一个系统 UUID,根据定义它是唯一的,但我不能确定它是否被普遍实施。

相关内容