GUID和UUID
GUID,英文全称为 Global Unique Identifier,意为全局唯一标识符,UUID,英文全称为 Universally Unique Identifier,意为通用唯一标识符,都具有唯一性,GUID也是微软对UUID是的实现。
UUID
UUID,通用唯一标识码,作为分布式运算环境的一部分,是一个作用于计算机体系中识别信息的128位标识符标准。
在UUID标准中规定了UUID全长位128位,表示为32个数字,在表现形态上展现为16进制数字,以特定的长度分割,其中用连字符 - 分割为5组数字,长度为 8-4-4-4-12,形式为 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 总共36个字符。
GUID
GUID,全局唯一标识码,本质上为UUID标准,由微软根据UUID标准变种实现得到,所以在形式上和UUID表现完全一致。如:{21EC2020-3AEA-1069-A2DD-08002B30309D}。
GUID的主要目的是产生完全唯一的数字。在理想情况下,任何计算机都不会生成两个相同的GUID。GUID的总数也足够大,达到了2^128^(3.4×1038)个,所以随机生成两个相同GUID的可能性是非常小的,但并不为0。所以,用于生成GUID的算法通常都加入了非随机的参数(如时间),以保证这种重复的情况不会发生。
C#代码
使用C#代码可以很容易的生成并使用GUID,C#代码中提供了 Guid
类型,并且内置了很多方法,例如 NewGuid()
可以直接生成一个全新的GUID,同时提供了多种格式化格式。
var guid = Guid.NewGuid();
var guidStr = guid.ToString();
其中的 ToString()
方法提供了多个参数支持,用于输出不同格式的GUID字符串,包括了 D,N,B,P和X。
规范 | 返回格式 |
---|---|
N |
32位数字:00000000000000000000000000000000 |
D |
连字符分隔的32位数字:00000000-0000-0000-0000-000000000000 |
B |
大括号括起来的连字符分隔的32位数字:{00000000-0000-0000-0000-000000000000} |
P |
小括号括起来的连字符分隔的32位数字:(00000000-0000-0000-0000-000000000000) |
X |
大括号括起来的十六进制数字:{0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} |
对于需要快速生成GUID,还可以使用GUID生成器来生成。