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

What is a easy way to generate a GUID for the current machine in C++?

本文关键字:GUID 简单 方法 是什么 c++ 机器      更新时间:2023-10-16

我目前正在开发一款第一人称射击游戏。

我想知道是否有一种方法来生成一个GUID,将始终返回相同的值为同一台机器,但将是不同的另一台机器。

我需要做这个生成来有效地禁止麻烦的用户。

我希望它能同时在microsoftvisualc++和g++上工作

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

您可以在HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptography注册表项处读取MachineGuid键。

这在Windows上可以工作,但在其他操作系统上你需要另一种方法。

你可以使用MAC地址

这里描述了一种方法

HKEY_CLASSES_ROOT中也有TMID。