C# 计算机唯一整数

C# 计算机唯一整数,c#,wmi,guid,C#,Wmi,Guid,我试图寻找一个我可以在C#中访问的唯一32位整数。整数应该是特定于特定计算机的;但它不一定要有防撞性 我已经查看了MAC地址和ProcessorId,但它们都太大,无法存储为Int32。 任何其他建议(除了截断前面提到的标识符以适应需要)获取您想要使用的其他任何东西的MAC地址和/或processorID,并通过一个将产生32位值的哈希函数运行它 一个简单的CRC32可能会完成这项工作,因为您不关心碰撞 如果有帮助的话,我找到了一个方便的CRC32实现。获取您想要使用的其他任何东西的MAC地址和

我试图寻找一个我可以在C#中访问的唯一32位整数。整数应该是特定于特定计算机的;但它不一定要有防撞性

我已经查看了MAC地址和ProcessorId,但它们都太大,无法存储为Int32。
任何其他建议(除了截断前面提到的标识符以适应需要)

获取您想要使用的其他任何东西的MAC地址和/或processorID,并通过一个将产生32位值的哈希函数运行它

一个简单的CRC32可能会完成这项工作,因为您不关心碰撞


如果有帮助的话,我找到了一个方便的CRC32实现。

获取您想要使用的其他任何东西的MAC地址和/或processorID,并通过一个哈希函数运行它,该函数将生成一个32位值

一个简单的CRC32可能会完成这项工作,因为您不关心碰撞


如果有帮助的话,我找到了一个方便的CRC32实现。

AFAIK您将一致地(在所有PC上)找到的任何必须假装唯一的号码都将太长,因为它们旨在防止碰撞。实际上,4字节的长度不足以识别大规模生产的任何东西。我想如果它不必是32位就好了。这不是一个可以更改的选项吗?如果它不必具有抗冲突性,为什么不对所有值使用42?我会非常小心地截断MAC地址,最终可能会导致更多冲突。这似乎是一个奇怪的实现/请求。你想要达到什么样的实际要求?好吧,你会发现(在所有电脑上)一致的、必须假装独特的任何数字都太长了,因为它们是为了防碰撞的。实际上,4字节的长度不足以识别大规模生产的任何东西。我想如果它不必是32位就好了。这不是一个可以更改的选项吗?如果它不必具有抗冲突性,为什么不对所有值使用42?我会非常小心地截断MAC地址,最终可能会导致更多冲突。这似乎是一个奇怪的实现/请求。你想要达到什么实际要求?好建议。不过,你必须小心帐户的运行,因为和管理员帐户会得到与普通帐户不同的硬件ID。谢谢好建议。不过,你必须小心帐户的运行,因为和管理员帐户会得到与普通帐户不同的硬件ID。谢谢