Guid(全局統一標識符)
一、簡介
1.什么是GUID?
全局唯一標識符(GUID,Globally Unique Identifier),GUID也稱作 UUID(Universally Unique IDentifier) 。GUID是一種由算法生成的二進制長度為128位的數字標識符。GUID主要用於在擁有多個節點、多台計算機的網絡或系統中。
2.為什么要使用GUID?
在理想情況下,任何計算機和計算機集群都不會生成兩個相同的GUID。GUID 的總數達到了2^128(3.4×10^38)個,所以隨機生成兩個相同GUID的可能性非常小,但並不為0。GUID一詞有時也專指微軟對UUID標准的實現。
(1). GUID(全局統一標識符)是指在一台機器上生成的數字,它保證對在同一時空中的所有機器都是唯一的。
通常平台會提供生成GUID的API。生成算法很有意思,用到了以太網卡地址、納秒級時間、芯片ID碼和許多可能的數字。GUID的唯一缺陷在於生成的結果串會比較大。
(2). GUID永遠是方便的
對於程序開發的各個方面,.NET Framework簡化了建立和處理GUID數值的過程。在.NET程序需要的地方,這一功能很容易地生成唯一的數值。
二、代碼案例
class Program { static void Main(string[] args) { var uuid = Guid.NewGuid().ToString(); // 67b69599-5026-4765-8707-def49a214219 var uuidN = Guid.NewGuid().ToString("N"); // f93618e93beb4a4181526d7a38c169a4 var uuidD = Guid.NewGuid().ToString("D"); //c747ac63-a9c2-46f9-80d7-f635c330a59f var uuidB = Guid.NewGuid().ToString("B"); // {2a77d03e-0366-4977-97f1-229c17fe906f} var uuidP = Guid.NewGuid().ToString("P"); // (8165193f-8595-439d-bbaf-9ce55171eecf) var uuidX = Guid.NewGuid().ToString("X"); // {0x48645e66,0xbe0c,0x4990,{0x8e,0xee,0x3c,0x84,0xba,0xda,0x0d,0x83}} var guid1 = GenerateId1();//5a0aec9398c64e09 var guid2 = GenerateId2();//4976172849618296785 } private static string GenerateId1() { long i = 1; foreach (byte b in Guid.NewGuid().ToByteArray()) { i *= ((int)b + 1); } return string.Format("{0:x}", i - DateTime.Now.Ticks); } private static long GenerateId2() { byte[] buffer = Guid.NewGuid().ToByteArray(); return BitConverter.ToInt64(buffer, 0); } }
三、總結
這里的D,N,B,P是不區分大小寫的,如果傳入空字符串,則使用的默認的D類型,其它情況都會報異常。