2024年4月3日发(作者:)
GUID概念
GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally
Unique IDentifier) 。 GUID是一个通过特定算法产生的二进制长度为128位的数字标识
符,用于指示产品的唯一性。GUID 主要用于在拥有多个节点、多台计算机的网络或系统
中,分配必须具有唯一性的标识符。
在 Windows 平台上,GUID 广泛应用于微软的产品中,用于标识如如注册表项、类
及接口标识、数据库、系统目录等对象。
GUID格式
GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9
或 a-f 范围内的一个32位十六进制数。(8-4-4-4-12)例如:
6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。
GUID特点
★GUID在空间上和时间上具有唯一性,保证同一时间不同地方产生的数字不同。
★世界上的任何两台计算机都不会生成重复的 GUID 值。
★需要GUID的时候,可以完全由算法自动生成,不需要一个权威机构来管理。
★GUID的长度固定,并且相对而言较短小,非常适合于排序、标识和存储。
GUID争议
由于GUID值产生的潜在弊端已经引起了保密性提倡者的关注。1999年3月,美国
联邦商务委员会接到要求,对微软的GUID值使用进行调查。争议主要涉及Office 97和
Office 2000文档对GUID值的使用。Office文档,如Word文件或Excel电子数据表,
所使用的GUID值对用户是不可见的。但有很多报道宣称,文档的作者是可以通过GUID
值的跟踪查到的,即使作者已经采用特殊方法,他们还是可以被追踪到。 为了回应上述问
题,微软已经发布了一个Office 97修补版SR2,它禁止了GUID功能的使用,并且还可
以将现存文档的GUID去除。
潜在的对Intel处理器序列号滥用的问题与上述GUID值的问题本质是一样的。
在 API 参数中,需要给出的往往不是类或者 DLL/EXE 文件的真是名称,而是使用他
们的 GUID(全局统一ID)。GUID 是微软对 UUID(统一唯一标识)的解释,理论上在
整个空间和时间维上是唯一的,因此使用 GUID 来代替真实名称,可以防止系统中有两个
相同名称的对象而造成混淆。
一个 GUID 是一个128位长(16字节)的数,形如
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。其中前4字节为随机数;5-8字节为时间戳,
记录了从1490年开始到该GUID的生成时间(低16位字在前,以分钟为单位),从而保
证了时间上的唯一;9-10字节与机器重启次数有关;最后6字节一般为该机器的网卡地址
(如果这台机器没有网卡,则使用另一常数),从而保证了空间上的唯一。
在系统中,GUID 保存在注册表(运行→regedit)的 HKEY_CLASSES_ROOT 项下。
HKEY_CLASSES_ROOT 其实是 HKEY_LOCAL_MACHINESOFTWARECLASSES 的
发布评论