globally unique identifier(GUID——全局唯一标识符)
分配给COM对象的标识符(ID)。它通过一种复杂的算法生成,该算法保证所有的COM对象都有着唯一的ID,而不会出现名字冲突。
GUID(全球唯一标识)是微软使用的一个术语,由一个特定的算法,给某一个实体,如Word文档,创建一个唯一的标识,GUID值就是这个唯一的标识
码。GUID广泛应用于微软的产品中,用于识别接口、复制品、记录以及其他对象。不同类型的对象对应不同的GUID值。例如,一个微软Access数据库
使用的是16字节域为复制品创建一个唯一标识。
微软的某种GUID值本质、形成GUID值方法以及由于GUID值产生的潜在弊端已经引起了保密性提倡者的关注。1999年3月,美国联邦商务委员会接到要求,对微软的GUID值使用进行调查。
争议主要涉及Office 97和Office
2000文档对GUID值的使用。发现表明,为Office文档产生的GUID值与计算机网卡统一标识值一致。这个事实表明,Office文档,如
Word文件或Excel电子数据表,所使用的GUID值对用户是不可见的。有很多报道宣称,文档的作者是可以通过GUID值的跟踪查到的,即使作者已经
采用特殊方法,他们还是可以被追踪到的。
为了回应上述问题,微软已经发布了一个Office 97修补版SR2,它禁止了GUID功能的使用,并且还可以将现存文档的GUID去除。
潜在的对Intel处理器序列号滥用的问题与上述GUID值的问题本质是一样的。
GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成GUID的API。生成算法很有意思,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。GUID的唯一缺陷在于生成的结果串会比较大。
GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f
范围内的一个十六进制的数字。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。
GUID guid;
CoCreateGuid(&guid);
char strData1[9];
char strData2[5];
char strData3[5];
char strData4[8][3];
sprintf(strData1,"%08X",guid.Data1);
sprintf(strData2,"%04X",guid.Data2);
sprintf(strData3,"%04X",guid.Data3);
sprintf(strData4[0],"%02X",guid.Data4[0]);
sprintf(strData4[1],"%02X",guid.Data4[1]);
sprintf(strData4[2],"%02X",guid.Data4[2]);
sprintf(strData4[3],"%02X",guid.Data4[3]);
sprintf(strData4[4],"%02X",guid.Data4[4]);
sprintf(strData4[5],"%02X",guid.Data4[5]);
sprintf(strData4[6],"%02X",guid.Data4[6]);
sprintf(strData4[7],"%02X",guid.Data4[7]);
m_strID.Format("{%s-%s-%s-%s%s-%s%s%s%s%s%s}",strData1,strData2,strData3,
strData4[0],strData4[1],strData4[2],strData4[3],strData4[4],strData4[5],strData4[6],strData4[7]);
Guid 简单类型
定义用于通过 GUID 值标识对象的值的类型。
<xs:simpleType name="Guid">
<xs:restriction
base="string"
>
<xs:pattern
value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
/>
</xs:restriction>
</xs:simpleType>
模式
以下模式由 Guid 简单类型定义:
[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}
一个作为 GUID 值的字符串,它是唯一的 128 位数字。例如 5b2fc63a-8af4-44cb-960c-aefdced908d6。