在调试模糊的代码缺陷时,能够区分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的其他迹象是什么?
答案 0 :(得分:1)
GUID是十六进制的,因此您可以检查包含哪些字符(即“X”,“Y”等无效)
检查维基百科的定义,你可能会在那里找到更多的想法。
答案 1 :(得分:1)
除了GUID版本(0100)之外,还有一种称为GUID变体的东西。这将是八位字节8中的2位(10)。根据定义,v4 GUID的剩余位a是随机的。