6

在调试晦涩的代码缺陷时,能够将 GUID 与随机数据区分开来可能很有用。

在 Windows 上,生成的每个 GUID 都是版本 4,因此它具有“4”作为第三部分的前半字节。因此,如果 16 字节序列违反了该规则,则它不是版本 4 GUID。例如,

567E1ECB-EA1C-42D3-A3ED-87A5D824D167

可以是版本 4 GUID 或其他任何东西,但是

567E1ECB-EA1C-02D3-A3ED-87A5D824D167 //third section starts with 0, not with 4

不是版本 4 GUID。

16 字节内存块是否是有效 GUID 的其他标志是什么?

4

2 回答 2

1

除了 GUID 版本 (0100),还有一个叫做 GUID 变体的东西。这将是八位字节 8 中的 2 位 (10)。v4 GUID 的其余位 a 根据定义是随机的。

于 2009-11-23T14:51:19.933 回答
1

GUID 是十六进制的,因此您可以检查包含哪些字符(即“X”、“Y”等无效)

检查维基百科的定义,你可能会在那里找到更多的想法。

http://en.wikipedia.org/wiki/Globally_Unique_Identifier

于 2009-11-20T15:58:26.573 回答