在C ++中为当前机器生成GUID的简单方法是什么?

时间:2011-11-01 03:38:36

标签: c++ g++ guid uniqueidentifier

我目前正在开发第一人称射手。

我想知道是否有办法生成一个GUID,它总是为同一台机器返回相同的值,但在另一台机器上会有所不同。

我需要做这一代才能有效地禁止麻烦的用户。

我希望它适用于Microsoft Visual C ++和g ++。

4 个答案:

答案 0 :(得分:1)

我会对MAC地址进行投票,因为每个MAC地址在制造时都是唯一的,但是你会遇到欺骗问题。我建议您将其基于多个值,例如卷序列号,CPU型号/步进,MAC地址和磁盘制造商,作为示例。这取决于你,但是尽量避免依赖于单个值,因为这可能总是会改变,但是如果你的任何识别因素发生变化,GUID会发生变化,所以你需要在机器之间选择某种持久值。像产品密钥或产品ID这样的东西可能是更好的选择,但我不确定是否可以轻松访问。

答案 1 :(得分:1)

您可以在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography注册表项中读取MachineGuid密钥。

这可以在Windows上运行,但是你需要一种其他操作系统的替代方法。

答案 2 :(得分:0)

您可以使用MAC地址。

描述here的方法。

答案 3 :(得分:0)

HKEY_CLASSES_ROOT中还有TMID。仅限Windows。