UUID生成器

其他工具

轉輪{$ ',' | translate $} 計時器{$ ',' | translate $} 單位換算{$ ',' | translate $} 拋硬幣{$ ',' | translate $} 亂數發生器{$ ',' | translate $} 擲骰子{$ ',' | translate $} 體重指數計算器{$ ',' | translate $} 卡路里計算器{$ ',' | translate $} 基礎代謝率計算器{$ ',' | translate $} 體脂計算器{$ ',' | translate $} 每日總消耗熱量{$ ',' | translate $} Tabata計時器{$ ',' | translate $} 百分比計算器{$ ',' | translate $} 二維碼產生器{$ ',' | translate $} 密碼產生器{$ ',' | translate $} 反應時間測試{$ ',' | translate $} 打字速度測試{$ ',' | translate $} CPS測試{$ ',' | translate $} 字數計算{$ ',' | translate $} 大小寫轉換器{$ ',' | translate $} 文字比較{$ ',' | translate $} 按揭計算器{$ ',' | translate $} 貸款計算器{$ ',' | translate $} 車貸計算器{$ ',' | translate $} 增值稅計算器{$ ',' | translate $} 複利計算器{$ ',' | translate $} 薪資計算器{$ ',' | translate $} 虛擬鋼琴{$ ',' | translate $} 背景噪音產生器{$ ',' | translate $} 節拍器{$ ',' | translate $} 折扣計算器{$ ',' | translate $} 當前週號碼{$ ',' | translate $} 小費計算器{$ ',' | translate $} 時間計算器{$ ',' | translate $} 日期計算器{$ ',' | translate $} 年齡計算器{$ ',' | translate $} 貨幣換算{$ ',' | translate $} 睡眠計算器{$ ',' | translate $} 月相{$ ',' | translate $} 調色板生成器{$ ',' | translate $} 選色器{$ ',' | translate $} 色彩方案生成器{$ ',' | translate $} 戒指尺寸計算器{$ ',' | translate $} 衣物尺寸計算器{$ ',' | translate $} 鞋子尺寸計算器{$ ',' | translate $} 胸圍尺碼計算器{$ ',' | translate $} 排卵計算工具{$ ',' | translate $} 預產期計算器{$ ',' | translate $} 星座{$ ',' | translate $} 智商測試{$ ',' | translate $} 表情符號{$ ',' | translate $} 跑表{$ ',' | translate $} 倒計時{$ ',' | translate $} 鬧鐘{$ ',' | translate $} 子網路計算器{$ ',' | translate $} 網速測試{$ ',' | translate $} IP地址{$ ',' | translate $} Base64轉換器{$ ',' | translate $} MD5雜湊生成器{$ ',' | translate $} Markdown編輯器{$ ',' | translate $} Lorem Ipsum生成器{$ ',' | translate $} 番茄鐘計時器

產生UUID/GUID

產生UUID/GUID

通用唯一標識符(UUID),也稱為全局唯一標識符(GUID),已廣泛應用於計算機系統中。

它是系統根據變量和常量生成的 128 位代碼:當前時間、MAC 地址、SHA-1 哈希值、MD5 命名空間。 生成 UUID 的最終結果顯示為由連字符分隔的 32 個字符的字母數字代碼,看起來可能是任意的,但實際上它是複雜計算的結果。 因此,計算機並不是“發明”代碼,而是根據給定時間相關的特定技術量形成代碼。

不同時間在兩台不同計算機上生成相同 UUID 的概率趨於零,這使得無需參考協調中心即可使用生成的代碼進行點/本地數據識別。 如今,UUID/GUID 在在線和離線網絡中無處不在,不僅在全球互聯網空間中有效工作,而且在獨立計算機系統中也有效工作。

UUID 歷史記錄

128 位 UUID 代碼最早由美國阿波羅計算機公司在 20 世紀 80 年代使用。 它們基於域/操作系統中使用的更簡單的 64 位代碼,並在開放軟件基金會計算環境中得到廣泛使用。

隨著第一個 Windows 平台的出現,全局唯一標識符得到了通用化和標準化。 微軟採用了Apollo Computer的DCE設計,並在RFC 4122中註冊了URN命名空間。2005年,後者被IETF提出作為新標準,UUID在ITU內部得到標準化。

2002 年初,在使用 UUID 作為本地數據庫中的主鍵時發現了系統性能問題。 這些問題在版本 4 中通過添加基於計算機系統時間的非隨機後綴進行了修復。 所謂的COMB(組合GUID時間標識符)方法增加了代碼重複的風險,但同時顯著提高了與Microsoft SQL Server一起使用時的性能。

隨著IT技術的發展,通用唯一標識符不再是一個高度專業化的技術工具,而是到了今天每個人都可以使用它。 生成的代碼的重複概率並不等於零,而是趨於零,任何數字信息都可以被它們識別,之後它們可以組合成單個數據數組,重複風險最小。

UUID 的好處

全球唯一代碼的生成器不需要集中的數據協調/同步,並且可供所有用戶免費使用。 UUID的主要優點包括:

  • 代碼“衝突”(重複)的風險極小。 儘管它們被大量使用,但重複的概率趨於零。
  • 能夠使用 UUID 作為主(唯一)鍵來連接不同的數據數組。
  • 簡化數據在多個分散服務器之間的分發。
  • 能夠離線生成代碼。

以 xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx 格式編寫的唯一識別碼允許分散的系統無需來自單個數據中心的協調即可識別信息:錯誤/重複的概率幾乎為零。 這一特性,加上易用性和對計算機性能的低要求,使得 UUID 在各種 IT 行業和自主計算系統中受到需求和不可或缺。

通用唯一ID

通用唯一ID

UUID可以使用不同的算法和變量/常量值生成代碼。

標識符總共有 5 個版本,使用系統日期/時間和 MAC 地址、DCE 安全協議、MD5 哈希、SHA-1 哈希和生成時的命名空間。

在所有情況下,最終結果均以 xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx 格式顯示(十六進制數字,由小寫拉丁字母和數字組成,並用連字符分為五個塊:8-4 -4-4- 12),M代表版本,N代表UUID變體。

因此,系統一次使用 36 個字符(26 個字母和 10 個數字),因此重複 32 位代碼的概率趨於零,儘管它們每天都是由世界各地數百萬用戶生成的。

UUID 版本

版本 1

第一個版本的唯一標識符在生成代碼時基於計算機的 MAC 地址及其係統時間,每秒更改其數值 1 次。 生成過程由五個階段組成:

  • 低 32 位信息取自 UTC 標籤。 轉換為8個十六進製字符,佔用4個字節。
  • 平均16位信息取自同一個UTC標籤,轉換為4個十六進製字符,佔用2個字節。
  • 獲取 UTC 標記的高 12 位信息並將其轉換為另外 4 個十六進製字符。
  • 另外 1-3 位落在時鐘序列上,通過引入一定程度的隨機性/不確定性來降低衝突風險。 系統時間有條件地減慢或向後設置 - 以便同時在同一台計算機上工作的兩個或多個標識符不會“交叉”。
  • 剩下的 6 個字節是根據設備的 MAC 地址生成的常量值。 它由 12 個十六進製字符組成,大小為 48 位。

由於第一版UUID的算法與系統時間有著千絲萬縷的聯繫,因此時鐘序列的使用是強制性的。 否則,在系統時間“凍結”在一個或另一個值的那一秒內,生成相同代碼的風險會增加很多倍。

版本 2

第二個版本與第一個版本略有不同,並且在實踐中很少使用。 它使用與用戶數據或其他在其他計算機上不重複或很少重複的唯一值相關聯的系統標識符,而不是時鐘序列。 第二個版本中隨機性的影響被最小化,可以用來提高分佈式計算環境的安全性。

版本 3 和 5

它們有很多共同點:它們使用唯一的名稱和名稱(來自 MD5 空間)來創建代碼,即非隨機值。 只有版本 3 使用標準哈希,而版本 5 使用 SHA-1 哈希。 此類標識符對隨機變量的依賴性較小。

版本 4

這個UUID版本的生成是90%以上隨機的。 常量值有 6 位,任意值有 122 位。算法的實現是首先隨機生成 128 位信息,其中 6 位被版本和變體數據替換。

第四個版本中偽隨機數生成器的作用是最大的,如果算法過於簡單,重複/衝突的風險會顯著增加。 儘管如此,第四個版本是迄今為止最常見且在實踐中最常用的版本。

UUID 選項

隨著計算機技術的發展,獨特的UUID已經過多次完善,如今它有多個版本。

選項0

設計用於與舊版 Apollo 網絡計算系統 1.5 1988 格式數據庫配合使用。 此選項向後兼容它們,並且不會與 NCS 歷史 UUID 衝突。

選項 1 和 2

它們用於識別現代數據塊和數組,並且在規範文本形式中,除了變量位的寫入順序之外,它們彼此沒有區別。 因此選項 1 使用 big-endian 字節順序,選項 2 使用 title-endian。 第一個是主要的,第二個是為使用 Microsoft Windows 的早期 GUID 而保留的。

選項 3

目前未使用。 它是一個保留版本,供將來使用 - 當以前的選項的可能性用盡時。

大多數係統都以大尾數法對標識符進行編碼,但也有例外。 例如,Microsoft COM/OLE 庫中的封送處理使用混合字節序,同時從標題字節序和大字節序塊生成代碼。 第一個是 UUID 的前三個組成部分,第二個是最後兩個組成部分。