UUID 產生器
免費線上 UUID 產生器:UUID v4 與 v7(同一批保證遞增),可複製成逗號、JSON 或 SQL IN 格式,也能檢查 UUID 的版本與 v7 時間。
選 v4 或 v7、按「產生 UUID」就好,可以複製成每行一個、逗號分隔、JSON 陣列或 SQL IN 格式;不登入一次最多 5 個,登入後最多 100 個。下方「檢查 UUID」可以貼一個 UUID,看格式對不對、是第幾版,v7 還能讀出產生時間。全部在瀏覽器裡用安全亂數產生。
UUID 長什麼樣子
UUID 是 128 位元的識別碼,寫成 32 個十六進位字,用連字號分成 8-4-4-4-12 五段。不需要一台中央伺服器發號碼,每台電腦自己產生也幾乎不會重複,所以常用在資料庫主鍵、訂單編號、檔案名稱與分散式系統。
第 13 個字是版本(這裡是 7),第 17 個字是變體(8、9、a、b 是現行標準)
0192f3a0-7b1c-7cde-8f00-123456789abc
↑ ↑
版本 變體「檢查 UUID」就是讀這兩個位置判斷版本;變體不是 8、9、a、b 的,多半是舊系統產生的,或只是長得像 UUID 的隨機字串。全部是 0 的叫 Nil UUID、全部是 f 的叫 Max UUID,是標準定義的特殊值。
v4 和 v7 怎麼選
| v4 | v7 | |
|---|---|---|
| 怎麼產生 | 122 位元全部隨機 | 前 48 位元是毫秒時間戳,後面隨機 |
| 能不能照時間排序 | 不能 | 可以,字串排序就是時間順序 |
| 當資料庫主鍵 | 新資料散落在索引各處,資料量大時寫入較慢 | 新資料集中寫在索引尾端,寫入效率較好 |
| 看得出產生時間嗎 | 看不出 | 看得出(精確到毫秒) |
| 適合 | 一般識別碼、不想洩漏時間的場合 | 資料庫主鍵、事件紀錄、需要依時間排序的編號 |
本工具產生的 v7 有處理同一毫秒內的順序:同一毫秒產生好幾個時,把時間戳後面的 12 位元當計數器往上加(國際標準 RFC 9562 建議的做法之一),所以同一批 UUID 排序後順序不會亂。
會不會重複
v4 有 122 位元是隨機的,組合數大約是 5.3 × 10³⁶。用生日問題估算:就算產生 1 兆個 v4,其中出現任何一組重複的機率大約是十兆分之一。實務上重複幾乎都來自程式錯誤(例如用了不安全的亂數、或把同一個值複製兩次),不是運氣不好。v7 在同一毫秒內靠計數器加上最後 62 位元的隨機值區分,不同電腦同時產生也一樣不用擔心撞號。
本工具用瀏覽器的安全亂數(crypto.getRandomValues)產生,不會把產生的 UUID 送到伺服器。
輸出格式與貼到程式裡
| 格式 | 樣子 | 常見用途 |
|---|---|---|
| 標準 | 0192f3a0-7b1c-7cde-8f00-123456789abc | 大多數程式語言與資料庫 |
| 大寫 | 0192F3A0-7B1C-7CDE-8F00-123456789ABC | 部分 Windows 工具、舊系統 |
| 無連字號(登入後) | 0192f3a07b1c7cde8f00123456789abc | 存成 32 字元欄位、檔名 |
| 大括號(登入後) | {0192f3a0-7b1c-7cde-8f00-123456789abc} | .NET、Windows 登錄檔的 GUID 寫法 |
| URN(登入後) | urn:uuid:0192f3a0-7b1c-7cde-8f00-123456789abc | XML、需要 URI 的規格 |
- 逗號分隔:可選加單引號或雙引號,貼進程式的陣列或 CSV。
- JSON 陣列:直接是 ["…", "…"],貼進設定檔或測試資料。
- SQL IN (…):產生 ('…', '…'),接在 WHERE id IN 後面查一批資料。
在程式與資料庫裡產生
常見語言內建的寫法
// JavaScript(v4)
crypto.randomUUID()
# Python(v4)
uuid.uuid4()
// C# / .NET(v4)
Guid.NewGuid()
-- PostgreSQL 13 起內建(v4)
SELECT gen_random_uuid();
-- MySQL(注意:這是 v1)
SELECT UUID();要測試資料、手動建幾筆資料或寫文件範例時,用這個工具複製一批最快;正式系統裡請在程式裡產生。MySQL 的 UUID() 產生的是含時間與主機資訊的 v1,要隨機的 v4 或可排序的 v7 需要另外處理,貼到「檢查 UUID」就能確認手上的是哪一版。
UUID 產生器功能特點
- UUID v4(隨機)和 v7(時間排序,同一批保證遞增)
- 標準、大寫格式;登入後可用無連字號、大括號、URN
- 複製成每行一個、逗號分隔、JSON 陣列或 SQL IN (…),可加引號
- 檢查 UUID:格式、版本、變體,v7 與 v1 讀出產生時間
- 批量產生(登入後最多 100 個)
- 下載成檔案(登入後)
- 列出這次產生過的 UUID(登入後,關閉頁面即清除)
如何使用UUID 產生器?
- 選擇 UUID 版本
- 設定格式和數量
- 點擊產生
- 選擇複製成哪種格式後複製,或貼一個 UUID 到「檢查 UUID」
UUID 產生器常見問題
v4 和 v7 有什麼區別?
v4 完全隨機,v7 前面是毫秒時間戳、可以照時間排序,當資料庫主鍵時新資料會集中寫在索引尾端。本工具產生的同一批 v7 保證遞增。
登入後有什麼額外功能?
登入後一次可產生最多 100 個(不登入最多 5 個),可使用無連字號、大括號、URN 格式,也能下載成檔案。
什麼是 UUID?
UUID(通用唯一識別碼)是一個 128 位元的標識符,格式為 8-4-4-4-12 的十六進位字串。它被設計為在全球範圍內唯一,無需中央協調機構即可生成,廣泛用於資料庫主鍵和分散式系統。
UUID v4 和 v1 有什麼區別?
UUID v1 基於時間戳和 MAC 地址生成,可能洩露設備資訊。UUID v4 完全基於隨機數生成,更適合需要隱私保護的場景。本工具產生 v4 與 v7;貼上 v1 到「檢查 UUID」可以讀出它的產生時間。
UUID 和 GUID 一樣嗎?
一樣的東西,GUID 是微軟的叫法,格式相同。.NET 的 Guid 預設產生隨機的版本 4;需要大括號寫法時,登入後選「{大括號}」格式即可。
UUID v7 會洩漏產生時間嗎?
會。v7 的前 48 位元就是毫秒時間戳,任何人拿到都能讀出產生時間(本工具的「檢查 UUID」就能讀)。如果不想讓人知道資料是何時建立的,例如公開網址裡的編號,請改用 v4。
可以用 UUID 當密碼重設連結或驗證碼嗎?
v4 由安全亂數產生、有 122 位元隨機,當成難以猜測的連結代碼可以;v7 有一部分是時間與計數器,隨機的部分較少,不適合當不能被猜到的權杖。真正的密碼與金鑰請用密碼產生器或專用的金鑰產生方式。