跳至主要內容

產生隨機 UUID v4

第 4 版 UUID 是一個 128 位元的值,其中 122 位元來自密碼學安全的隨機來源。其餘 6 位元標示版本與 RFC 變體,因此每個 UUID v4 的第三組都以 4 開頭。

計算範例

輸入的隨機位元組
9d 41 7c 02 e8 5b 13 f6 2a 7e c1 94 06 d3 b8 5f
結果
9d417c02-e85b-43f6-aa7e-c19406d3b85f
產生的 UUID 數量至少出現一個重複的機率
10⁶≈ 9.4 × 10⁻²⁶
10⁹≈ 9.4 × 10⁻²⁰
10¹²≈ 9.4 × 10⁻¹⁴
10¹⁵≈ 9.4 × 10⁻⁸

重複機率達到 50% 所需的 UUID 數量: ≈ 2.71 × 10¹⁸

運作原理

  • 產生器先以安全的隨機資料填滿 16 個位元組,再把第 6 個位元組的高半位元組設為 4(版本),並把第 8 個位元組的最高兩個位元設為 10(變體)。因此第三組以 4 開頭,第四組以 8、9、a 或 b 開頭。
  • 可能的值共有 2¹²² 個,以生日問題近似公式 p ≈ 1 − e^(−n²/2¹²³) 可算出 n 個隨機 UUID 中至少出現一個重複的機率。
  • UUID v4 不含時間戳記或硬體資訊。請將它當作識別碼使用,而不要當作密碼或驗證用的機密值。
UUID版本

一次生成1-100個UUID

關於UUID

UUID v1: 基於時間的UUID,包含時間戳記和生成UUID的電腦的MAC位址。當您需要知道UUID何時建立時很有用。

UUID v4: 隨機生成的UUID。這是最常用的版本,在最小資訊洩露的情況下提供良好的唯一性。

UUID v5: 使用SHA-1雜湊的基於名稱的UUID。給定相同的命名空間和名稱,您將始終獲得相同的UUID。對於確定性UUID生成很有用。

更多 UUID 指南