替代主板序列号的唯一标识符?


0

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

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

Answers:


1

我建议您阅读
有关为许可目的为计算机生成唯一密钥(指纹)的代码项目文章。

您将在此处找到C#中的代码,该代码又由作者找到,他本人用于满足许可需求。

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

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

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

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


抱歉,您的答案是在我撰写和检查我的文章时出现的。也许您知道UUID是否是一个好的解决方案。
AFH

@AFH:UUID通常非常独特,除非自行生成,但是UUID是什么?
harrymc '18

它与系统序列号(在我的一台笔记本电脑上未定义)一起包含在系统信息中。
AFH

@AFH:我不知道,但是可以找到它。张贴者不需要使用通用序列号的序列函数,只需一个将给定计算机指纹的函数即可。
harrymc '18

1
wmic csproduct get uuid根据此链接,返回值。如果已普遍实施,那么与创建和保存复合标识符相比,这是一种更直接的解决方案。
AFH

0

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.