什麼時候需要一個 UUID 產生器
給測試資料造假的主鍵、給新表定主鍵型別、給事件流編一個不衝突的 ID、在分散式服務之間傳一個不依賴中心發號的識別——這些場景的共同點是:你需要一串「幾乎不可能重複」的識別碼,而且現在就要。
UUID(通用唯一識別碼)就是這件事的標準答案。128 位、有成熟的格式規範(RFC 4122 與 2024 年的 RFC 9562),幾乎所有語言的標準庫都能產生。線上產生器的價值在於:不用寫程式碼就能拿到一批,還能按目標系統的習慣切換格式。
v4 還是 v7:一句話選法
- v4:122 位加密安全隨機。你在大資料、老系統、別人的框架裡看到的 UUID 十有八九是 v4。不確定就用它。
- v7:前 48 位是毫秒級 Unix 時間戳,其餘隨機。它按時間有序——做 MySQL/PostgreSQL 主鍵時索引順序插入而不是隨機打散,做事件 ID 時天然可排序。新專案值得優先考慮。
一個冷知識:v7 的前 48 位就是毫秒級時間戳,把一個 v7 的前 12 個十六進位字元按整數讀出來,就是它產生的時刻,可以直接用 Unix 時間戳轉換器核對。
iLoveDevTool 的線上 UUID 產生器
我們的線上 UUID 產生器把常用需求做直接:
- v4、v7、nil 三種版本:v7 在同一毫秒內嚴格遞增,批次結果可直接作有序測試資料;
- 一次最多 1000 個:整批複製為換行純文字或 JSON 陣列,貼進測試程式碼即用;
- 格式隨切:大寫、去連字號、大括號(GUID 寫法)三個開關,滿足 Windows、Java、PostgreSQL 各自的書寫習慣;
- 全部本機產生:隨機數來自瀏覽器的加密安全介面,不連網、不上傳。
和 uuidgenerator.org 比怎麼樣
uuidgenerator.org 是這個品類最老牌的網站,值得尊重,也值得誠實對比:
| 維度 | uuidgenerator.org | iLoveDevTool |
|---|---|---|
| 版本 | 單一格式(未標註版本) | v4 / v7 / nil 明確可選 |
| 批次 | 逐個產生 | 1 到 1000 個一次產生 |
| 格式選項 | 固定小寫連字號 | 大寫 / 連字號 / 大括號可切 |
| 介面語言 | 英文 | 中文優先,覆蓋 20 種語言 |
| 歷史積累 | 十幾年心智份額,搜尋結果常青 | 新工具,勝在輕與快 |
老站的優勢是「搜一下就能找到」的心智份額;功能維度上,我們的產生器在版本、批次與格式三項都更全。
常見問題
uuidgenerator.org 是免費的嗎?
是。uuidgenerator.org 的產生器免費可用,無需註冊。它的介面是英文的,批次與格式選項較基本;iLoveDevTool 的 UUID 產生器同樣免費,並提供 v7、1000 個批次、大小寫/連字號/大括號格式切換與中文介面。
UUID v4 和 v7 應該用哪個?
不確定就用 v4:它是絕大多數資料庫與框架的預設值,相容性最好。v7 帶 48 位毫秒時間戳前綴、按時間有序,做主鍵時索引不會被打散,日誌與事件流排序更直觀,適合新建資料表與事件 ID。存量 v4 系統不需要遷移。
GUID 和 UUID 是同一個東西嗎?
是。GUID 是微軟對 UUID 的稱呼,RFC 4122 之後兩者等價。Windows 生態常見的大括號大寫寫法,只是格式差異,用產生器的大寫與大括號選項就能得到。