Home | 簡體中文 | 繁體中文 | 雜文 | 知乎專欄 | Github | OSChina 博客 | 雲社區 | 雲棲社區 | Facebook | Linkedin | 視頻教程 | 打賞(Donations) | About

Chapter 1. UUID (Universally Unique Identifier)

Table of Contents

1.1. GUID
1.2. Subversion
1.3. PHP UUID
1.4. JAVA UUID
1.5. PERL UUID
1.6. Python UUID
1.7. MySQL uuid()
1.8. linux command uuid

以前對UUID的瞭解很少,只知道是128位整數(16位元組)的全局唯一標識符(Universally Unique Identifier)。

UUID 是指在一台機器上生成的數字,它保證對在同一時空中的所有機器都是唯一的。通常平台會提供生成UUID的API。UUID按照開放軟件基金會(OSF)制定的標準計算,用到了乙太網卡地址、納秒級時間、晶片ID碼和許多可能的數字。由以下幾部分的組合:當前日期和時間(UUID的第一個部分與時間有關,如果你在生成一個UUID之後,過幾秒又生成一個UUID,則第一個部分不同,其餘相同),時鐘序列,全局唯一的IEEE機器識別號(如果有網卡,從網卡獲得,沒有網卡以其他方式獲得),UUID的唯一缺陷在於生成的結果串會比較長。關於UUID這個標準使用最普遍的是微軟的GUID(Globals Unique Identifiers)。

其格式為: xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每個 x 是 0-9 或 a-f 範圍內的一個十六進制的數字。而標準的UUID格式為:xxxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxxx (8-4-4-4-12)

使用UUID的好處在分散式的軟件系統中(比如:DCE/RPC, COM+,CORBA)就能體現出來,它能保證每個節點所生成的標識都不會重複,並且隨着WEB服務等整合技術的發展,UUID的優勢將更加明顯。

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

RFC

1.1. GUID

GUID是UUID的windows實現,GUID也是一個128位長的數字,一般用16進製表示。算法的核心思想是結合機器的網卡、當地時間、一個隨機數來生成GUID。從理論上講,如果一台機器每秒產生10000000個GUID,則可以保證(概率意義上)3240年不重複。

到微軟件網站下載GUIDGEN.EXE來生成GUID

點擊"New GUID"生成新GUID

單擊"Copy"複製到剪貼板

生成的GUID:{12466768-64A9-426a-A2E8-ABFDB016B248}