> uuid | guid | 產生 <
// 即時產生通用唯一識別碼(UUID/GUID)
加密隨機
UUID v4使用crypto.getRandomValues()進行加密安全的隨機產生。您的資料永遠不會離開瀏覽器。
批次產生
一次產生最多100個UUID。非常適合資料庫填充、測試和開發工作流程。
多版本支援
支援UUID v4(隨機)和v1(時間戳記)。選擇適合您用例的版本。
// 關於UUID產生
UUID運作原理:
UUID(通用唯一識別碼)是由RFC 4122標準化的128位元識別碼。UUID v4使用122個隨機位元,提供2^122個可能的值。36字元格式遵循8-4-4-4-12模式,其中嵌入了版本和變體位元。
範例:
550e8400-e29b-41d4-a716-446655440000
常見用例:
- >資料庫主鍵和記錄識別碼
- >無需中央協調的分散式系統
- >工作階段令牌和關聯ID
- >檔案命名和資源識別
- >API請求追蹤和日誌記錄
>> 常見問題
問:什麼是UUID?
答:UUID(通用唯一識別碼)是一個128位元數字,用於在電腦系統中唯一識別資訊。它也被稱為GUID(全域唯一識別碼)。標準格式是由連字號分隔的8-4-4-4-12十六進位字元。
問:UUID v4和v1有什麼區別?
答:UUID v4使用隨機數產生,是最常用的版本。UUID v1基於當前時間戳記和節點識別碼。V4因其簡單性和隱私性而被大多數應用程式推薦使用。
問:UUID碰撞的機率是多少?
答:UUID v4有122個隨機位元,給出2^122(約5.3 x 10^36)個可能的值。產生重複的機率極低。
問:UUID和GUID有什麼區別?
答:UUID和GUID本質上是同一個東西。UUID是大多數標準中使用的術語,而GUID是微軟技術中常用的術語。
問:什麼是RFC 4122?
答:RFC 4122是定義UUID格式、產生演算法和命名空間慣例的網際網路標準。它規定了五個UUID版本(v1到v5)。
// 特殊的 UUID 值
這些固定值在 RFC 9562 中定義。
| UUID | 含義 |
|---|---|
| 00000000-0000-0000-0000-000000000000 | Nil UUID(所有位元為 0) |
| ffffffff-ffff-ffff-ffff-ffffffffffff | Max UUID(所有位元為 1) |
| 6ba7b810-9dad-11d1-80b4-00c04fd430c8 | DNS 命名空間(用於 v3/v5) |
// 在程式碼中產生 UUID
JavaScript crypto.randomUUID() Python str(uuid.uuid4()) PHP Ramsey\Uuid\Uuid::uuid4()->toString() Go uuid.NewString() Java UUID.randomUUID() C# / .NET Guid.NewGuid() PostgreSQL gen_random_uuid() MySQL UUID() Bash uuidgen
>> 更多問題
問:GUID 在 .NET 中有哪些格式?
答:Guid.ToString 支援 N(32 位數字)、D(含連字號,預設)、B(大括號)、P(小括號)與 X(十六進位結構)。解析時不區分大小寫。
問:SQL Server 的 NEWID() 與 NEWSEQUENTIALID() 有什麼差別?
答:NEWID() 回傳隨機 GUID,可能導致索引嚴重碎片化。NEWSEQUENTIALID() 回傳遞增值,只能用作欄位預設值。其值可預測,不適合用作機密。
問:.NET 中有可排序的 GUID 嗎?
答:從 .NET 9 起,Guid.CreateVersion7() 可依 UUID v7 產生依時間排序的 GUID。請注意 Guid 的位元組順序與 SQL Server 的排序方式和文字表示並不一致。