UUID 產生器

線上產生標準 UUID。本頁使用隨機 UUID v4:122 個隨機位元,常見的 36 字元格式。

格式
產生結果
就緒,可在瀏覽器裡產生 UUID。

這個 ID 的結構

結構
UUID v4:8-4-4-4-12 的十六進位分組,帶 RFC variant 位元。
122 個隨機位元;version 和 variant 占用 128 位元中的 6 位元。
時間
不寫入時間戳或裝置資訊。
碰撞風險
122 個隨機位元下的生日碰撞機率,對常見應用、測試和資料庫 ID 來說極低。
範例
0a14cb25-27dc-4977-b6c2-527219909fa9

你的 ID 會用瀏覽器裡的強隨機來源在本地產生,不會傳送到 BroBroGo。

常見問題

這個頁面產生哪種 UUID?

它產生 UUID v4:標準連字號格式的隨機 UUID。想看 v4 細節時,可以用 UUID v4 專頁,底層引擎相同。

UUID 會送到伺服器嗎?

不會。產生過程在瀏覽器裡用 Web Crypto API 完成,結果留在你的裝置上。

UUID v4 產生器:隨機、不可預測、瀏覽器內即時生成

UUID(通用唯一識別碼)v4 版本使用 122 位元的強隨機性,形成 16 個位元組的識別碼,並以 32 個十六進位字元加上四個連字符,表現為標準的 8-4-4-4-12 字串格式。不同於 UUID v7 或 ULID 這類內嵌時間戳的識別碼,v4 不攜帶任何時間資訊,因此排序結果完全隨機——這項特性在需要高熵值與不可猜測性的場景中至關重要,但若用作資料庫主鍵,則可能導致索引樹的頁面分裂與效能下降。本頁面專注於生成 UUID v4,提供數量控制、大小寫切換與連字符開關,所有計算都在您的瀏覽器中完成,無任何資料傳送至伺服器。

格式規則與位元結構

UUID v4 的規範定義在 RFC 4122 中。128 位元總長中,6 個位元固定為版本與變體標記(版本 4 的標記為 0100,變體為 10),其餘 122 位元完全由密碼學強度的亂數填充。因此 UUID v4 的典型字串如 f47ac10b-58cc-4372-a567-0e02b2c3d479,其中第 13 個字元固定為 "4",第 17 個字元固定為 "8"、"9"、"a" 或 "b"(代表變體)。即使關閉連字符,內部位元配置不變;例如 f47ac10b58cc4372a5670e02b2c3d479(32 字元)。

本頁面預設輸出為小寫、含連字符。啟用「大寫」開關後,所有十六進位字母會轉為大寫(如 F47AC10B-58CC-4372-A567-0E02B2C3D479)。「包含連字符」關閉則輸出純 32 字元字串。任何選項變動都會立即觸發整批重新生成,確保輸出始終反映當前的偏好設定。

生成機制與隱私保證

UUID v4 的隨機來源是瀏覽器內建的 crypto.getRandomValues() 方法,該介面由 Web Cryptography API 定義,由作業系統層級的 CSPRNG(密碼學安全偽亂數產生器)提供熵值。不同於使用 Math.random() 的簡單實作,此方法保證非確定性且無法被預測。所有運算完全在本機端執行:您設定的數量(1 至 100 之間)、大小寫與連字符偏好,都僅在您瀏覽器的 JavaScript 引擎中處理,不會透過網路傳輸任何資料。這表示即使離線,或是在無法信任第三方服務的環境中,您仍能安全地批量產生 UUID v4。

碰撞機率與實務考慮

122 位元隨機空間意味著可能的 UUID v4 總數約為 5.3×10^36(2^122)。碰撞機率的估計公式為:若已產生 k 個 UUID,下一個發生碰撞的機率約為 k² / (2×2^122)。以每年產生 10 億個為例,連續 100 年的總數約 10^11,碰撞機率仍低於 10^-15,在實際應用中可視為可以忽略。不過,這項數學保證不因您選擇大寫或小寫而改變——它只是表示法的差異。

正是因為這種純隨機性,UUID v4 不具備時間排序能力。若將大量 v4 值作為叢集索引鍵寫入資料庫,新產生的識別碼可能散落在樹的各處,導致頁面分裂率提高、快取命中率下降。時間排序的替代方案(如 UUID v7 或 ULID)雖然改善了索引效能,卻犧牲了不可猜測性。實務取捨需要您根據應用場景權衡。

操作介面與即時反饋

頁面提供的輸入項很明確:

  • 數量:範圍 1 到 100,輸入框只接受此區間的整數,超出範圍則不被接受。
  • 大寫:布林切換,預設關閉(false)。
  • 包含連字符:布林切換,預設開啟(true)。

每次變更任一選項,系統會立即重新產生整批 UUID v4。狀態訊息會從初始的「Ready.」變為「Generated.」,批量複製後則顯示「Copied all!」。單一 UUID 點擊可直接複製到剪貼簿;「Copy all」按鈕則一次複製所有顯示的識別碼,以換行分隔。

典型應用情境

安全令牌與會話識別碼是 UUID v4 最常見的戰場。由於缺乏時間模式,攻擊者無法從相鄰的令牌推測後續生成值。資料庫中需要外部唯一鍵但不在乎排序的資料表(例如日誌記錄、事件流水號的替代品、匿名化用戶識別碼)也很適合使用 v4。在測試資料生產環節,開發者可快速產生上百個一次性識別碼,填充 mock 資料庫。

注意事項:若您需要程式產生 UUID,應優先選用語言內建的 uuid 套件(如 Python 的 uuid.uuid4()、Node.js 的 uuid 模組),但當您需要臨時、直覺且不寫程式的批量生成時,本頁面的瀏覽器內處理模式提供了最直接的工具。

常見問答

問:UUID v4 與 UUID v7 的主要差異是什麼? 答:v4 完全以亂數產生,v7 則嵌入 Unix 時間戳(毫秒精度)加部分亂數。v4 不可排序但隨機性更強,v7 可大致按時間排序但會洩漏生成時間,且碰撞機率在極高併發時稍高。

問:為什麼關閉連字符後 UUID 變成 32 個字元? 答:連字符僅作為分組可讀性使用,不影響 UUID 的 32 個十六進位數字本體。RFC 4122 的規範表示法含連字符,但許多系統(如檔案名稱、URL 參數)偏好無連字符版本。

問:這個工具一次最多可以產生幾個 UUID? 答:1 至 100 個。這是頁面的輸入限制,超出範圍將無法設定。

問:生成速度與瀏覽器效能有關嗎? 答:生成 100 個 UUID v4 僅需數毫秒,現代瀏覽器皆可勝任。crypto.getRandomValues() 是非阻塞的同步呼叫,但由於批次數量有限,實務上無任何延遲。

問:我可以信任這個工具產生的亂數品質嗎? 答:是的。它使用與 window.crypto.subtle 相同的底層隨機源,通過 FIPS 140 等級驗證的作業系統熵池。全部在本機端進行,無任何外部請求。您也可以打開瀏覽器開發者工具驗證計算過程。

問:產生的 UUID 是否會違反 RFC 4122 的版本與變體標記? 答:不會。頁面實作會強制將第 13 個十六進位字元設為 "4",第 17 個字元設為 "8", "9", "a" 或 "b"(依高位亂數決定),符合標準規定。您可自行檢查輸出格式。