gpt4 book ai didi

c# - WIN32_Processor::ProcessorId 是否对所有计算机都是唯一的

转载 作者:可可西里 更新时间:2023-11-01 03:14:04 25 4
gpt4 key购买 nike

我想为许可系统使用一些独特的东西。我决定使用 Win32_Processor Management 类中的 ProcessorID。

我尝试了两个具有相同处理器类型的不同系统..

它显示两个系统的处理器 ID 相同。我正在使用这段代码

public static String GetCPUId()
{
String processorID = "";

ManagementObjectSearcher searcher = new ManagementObjectSearcher(
"Select * FROM WIN32_Processor");

ManagementObjectCollection mObject = searcher.Get();

foreach (ManagementObject obj in mObject)
{
processorID = obj["ProcessorId"].ToString();
}

return processorID;
}

最佳答案

不,不能保证它是唯一的,因为处理器甚至可能不支持 CPUID 指令,在这种情况下,不能保证调用成功。

此外,您忽略了一台机器中可能有多个处理器,因此获取单个处理器的 ID 没有帮助。


正如其他人所指出的,如果您想为系统获取唯一 ID,最好的办法是创建一个 ID,该 ID 是系统上各种组件 ID 的混合物。

硬件的各种值的散列(不只是任何散列,而是非常很少有冲突的散列)可能就足够了。您可能希望使用完全嵌入到系统中的东西,例如处理器、主板信息,但不要使用容易分离/更改的东西,例如 USB 驱动器/集线器等。

关于c# - WIN32_Processor::ProcessorId 是否对所有计算机都是唯一的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1101772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com