C++获取处理器ID

Vij*_*jay 8 c++ windows processor

这个帖子还可以. 如何获得处理器和主板ID?

我想使用不使用WMI或任何第三方库的C++代码获取处理器ID.

或者计算机上的任何东西都是独一无二的.有一件事是以太网ID,但在某些机器上又可以移除.我想主要用于许可目的.

处理器ID是否唯一且可在所有主要处理器上使用?

Tam*_*lei 17

我最近有类似的问题,我做了以下.首先,我获得了一些独特的系统识别值:

我采用这些值并以任意但确定的方式将它们组合在一起(请阅读下面的更新!)(添加,xoring,划分和保留余数等).迭代这些值,好像它们是字符串并且具有创造性.最后,您将获得一个字节文字,您可以将其转换为字母和数字的ASCII范围,以获得看起来不像噪声的独特"可读"代码.

另一种方法可以简单地连接这些值,然后用它们上面的东西"掩盖它们"(并且可能再次转换为字母).

我说这是唯一的,因为至少有一个输入应该是唯一的(MAC地址).当然,你需要对数论有一些了解才能消除这种独特性,但无论如何它应该足够好了.

重要更新:自从这篇文章以来,我学到了一些关于密码学的知识,我认为组成一个任意组合(基本上是你自己的哈希)几乎肯定是个坏主意.在实践中使用的散列函数被构造为表现良好(如碰撞的概率低)并且难以破坏(能力构造具有与另一个散列值相同的散列值的值).构建这样一个函数是一个非常困难的计算机科学问题,除非你有资格,否则你不应该尝试.正确的方法是连接您可以收集的有关硬件的信息(即我在帖子中列出的信息),并使用加密哈希或数字签名来获得可验证的安全输出.不要自己实施加密算法; 有许多漏洞陷阱需要大量的知识来避免.使用一个众所周知的可信库来实现算法.