Same CPU ID on two Intel machines
<blockquote>
  <p><strong>Possible Duplicate:</strong><br>
  <a href="http://stackoverflow.com/questions/1101772/win32-processoris-processorid-unique-for-all-computers">WIN32_Processor::Is ProcessorId Unique for all computers</a>  </p>
</blockquote>



<p>I'm creating an application with a trial feature. To detect if a certain user already used a trial the application connects to my server with their <code>machineHash</code>.</p>

<p>The <code>machineHash</code> function look like this:</p>

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

foreach (ManagementObject mo in moc)
{
    if (cpuInfo == "")
    {
        //Get only the first CPU's ID
        cpuInfo = mo.Properties["processorID"].Value.ToString();
        break;
    }
}
return cpuInfo;
</code></pre>

<p>However, it does report my processor ID as <code>BFEBFBFF000206A7</code> (on two different Intel machines, i5 and a Celeron). Googling <code>BFEBFBFF000206A7</code> has hits too, so it's not unique.</p>

<p>Could anyone tell me why this is not unique? I don't want to use the VolumeSerial of let's say the <code>C:\</code> drive as that can be easily changed with a simple command.</p>
