这是UUID或GUID的可接受用法吗?

时间:2018-08-13 04:12:39

标签: uuid guid uniqueidentifier

我正在创建一个带对象的类,并为其分配一个唯一的ID号。没什么特别的,它接收对象,为其分配一个数字,然后为下一个将收到ID号的对象递增ID计数器。

我想称呼成员UUID或GUID代表通用唯一标识符或全局唯一标识符,因为这种语言对于成员的含义非常明确。

但是我查了一下这个词,维基百科说:

  

通用唯一标识符(UUID)是一个128位数字,用于   识别计算机系统中的信息。   UUID

这使我认为这些术语具有非常具体的含义,并且可能我仅将其赋予每个对象一个唯一的数字来使用是不合适的。我正在考虑使用32位int等。

这是UUID或GUID的不正确使用吗?我认为这无关紧要,但是我正在用C ++编写。

2 个答案:

答案 0 :(得分:2)

是的,我认为这将是对这些术语的滥用。 UUID中的 Universally 或GUID中的 globally 表示,该标识符不仅在您的特定系统中是唯一的,而且在为任何开发的任何系统中也是唯一的目的,在任何地方。您仅为每个新实体递增的32位整数不具有该属性。它在您的系统中可能是唯一的,但不是普遍的。我会称之为Identifier或类似名称。

答案 1 :(得分:1)

您将找到答案here。在C ++中,您有一种创建guid的方法:

GUID gidReference;
HRESULT hCreateGuid = CoCreateGuid( &gidReference );

这是什么意思:

  

CoCreateGuid函数调用RPC函数UuidCreate,该函数   创建一个GUID,这是一个全局唯一的128位整数。使用CoCreateGuid   当您需要一个绝对唯一的数字时,可以将其用作   分布式环境中的持久标识符。   确定性,此函数返回唯一值-没有其他值   在相同或任何其他系统(是否联网)上的调用   返回相同的值。

当我们潜水时会看到:

  

出于安全原因,通常希望保留以太网地址   在网络上无法在公司或组织外部使用。   UuidCreate函数生成的UUID不能跟踪到   生成它的计算机的以太网地址。它也是   不能与在同一台计算机上创建的其他UUID关联。如果   您不需要此安全级别,则您的应用程序可以使用   UuidCreateSequential函数,其行为与UuidCreate完全相同   该功能适用​​于所有其他版本的操作系统。

我暗淡它很重要,因此您不仅会知道自己滥用了它,而且还会知道原因,因为在将来,这些信息可能对您很重要。