> 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-000000000000Nil UUID(所有位元為 0)
ffffffff-ffff-ffff-ffff-ffffffffffffMax UUID(所有位元為 1)
6ba7b810-9dad-11d1-80b4-00c04fd430c8DNS 命名空間(用於 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

>> 更多問題

問:主鍵應該用 UUID v4 還是 v7?

答:v7 以時間戳記開頭,大致依建立時間排序,插入 B-tree 索引時效率高。v4 完全隨機,在大型資料表中會造成分散的插入。需要排序與索引效能時選 v7,不希望 ID 洩漏時間資訊時選 v4。

問:在資料庫中儲存 UUID 的最佳方式是什麼?

答:如果有原生型別就用它(如 PostgreSQL 的 uuid)。否則優先用 BINARY(16) 而非 CHAR(36):佔用空間不到一半,比較與索引也更快。

問:產生兩個相同 UUID v4 的機率有多大?

答:UUID v4 含 122 位元隨機數。即使 100 年內每秒產生 10 億個,只要亂數產生器具備密碼學強度,衝突機率也遠低於十億分之一。

// 其他語言