处理器 ID 是否可以用于 AES 加密密钥

本文关键字:AES 加密 密钥 用于 ID 是否 处理器 | 更新日期: 2023-09-27 18:36:57

我正在使用下面的代码来获取处理器 ID:

System.Management.ManagementClass theClass = new System.Management.ManagementClass("Win32_Processor");
System.Management.ManagementObjectCollection theCollectionOfResults = theClass.GetInstances();
foreach (System.Management.ManagementObject currentResult in theCollectionOfResults)
{
    MessageBox.Show(currentResult["ProcessorID"].ToString());
}

处理器 ID 是每台计算机的唯一 ID 吗?我想为每台计算机生成一个随机的唯一编号,以用作 AES 加密密钥。我不想使用 MAC 地址,因为我知道 MAC 地址可以更改。

处理器 ID 是否可以用于 AES 加密密钥

  1. 处理器 ID 不保证每个 CPU 都是唯一的,也不保证存在。
  2. 硬件可以更换 - 您无法更改这一事实。

建议:
如果您需要唯一标识计算机 - 可以使用处理器 ID 或 MAC 地址或两者来实现唯一性。(或任何其他硬件相关号码)。但是你必须记住你识别的是硬件 - 而不是用户,所以如果硬件发生了变化,这就像你认识的人进行了整容,现在你不认识他。

如果您需要识别用户(我认为更好),只需让他选择用户名和密码即可。

如果你需要确保只有一个先前识别的用户在使用你的应用程序,并且你担心他会盗版你的应用程序......唯一的方法是有一个服务器/中心点。

这是一个

糟糕的解决方案,因为CPU必须支持CPUID指令,并且系统可能包含多个CPU。