在 windows 10 Iot Core 中生成唯一的硬件序列?

Generate unique hardware Serial in windows 10 Iot Core?

如何获取设备硬件信息并结合它们生成唯一值? 例如,我想要生成一个具有(CPU 序列号 + ram 序列号 + 以太网 mac 地址等)的唯一代码 那么如何在 UWP 中获取 CPU 或 Ram 序列号?

这不是一个完整的答案,但是, 您可以使用以下代码找到 CPU 序列号,

string cpuInfo = string.Empty;
ManagementClass mc = new ManagementClass("win32_processor");
ManagementObjectCollection moc = mc.GetInstances();

foreach (ManagementObject mo in moc)
{
     cpuInfo = mo.Properties["processorID"].Value.ToString();
     break;
}

我在 Windows.System.Profile 命名空间中找到 HardwareIdentification class用于生成 UniqueID。

   var token = HardwareIdentification.GetPackageSpecificToken(null);
   using (DataReader reader = DataReader.FromBuffer(token.Id))
   {
       byte[] bytes = new byte[token.Id.Length];
       reader.ReadBytes(bytes);
       string uniqueCode = Encoding.ASCII.GetString(bytes);
   }

更多信息可以看Microsoft Document

为此,请确保在目标设备上启用 TPM,要启用 TPM,您必须从 TPM 配置选项卡 中安装它Windows 设备门户。

提示: Raspberry pi 没有任何内部 TPM,因此您必须 select 软件 TPM 模拟器(NoSecurity) 然后安装,Intel minnow board max 和 qualcomm dragonboard 可以选择其他选项。设置并安装 TPM 设备重启后,当它再次启动时,您可以在顶部看到的生成代码始终是唯一的。