使用步驟
- 選擇 ID 型別。一般用 UUID v4;做資料庫主鍵推薦 v7 或 ULID。
- 設定數量和格式:大寫、連字元、花括號,或 Nano ID 的長度。
- 複製列表或下載為文字檔案,點「生成」換一批。
- 要檢視已有 ID 的資訊,貼上到「解析 ID」裡。
引數說明
- UUID v4
- 122 位隨機數,所有資料庫和程式語言都支援,最常用。
- UUID v7
- RFC 9562(2024 年)定義。前 48 位是毫秒級 Unix 時間戳記,新 ID 總是排在舊 ID 後面,能讓 PostgreSQL、MySQL 的 B+ 樹索引更緊湊、插入更快。
- ULID
- 26 個 Crockford Base32 字元,由 48 位時間戳記和 80 位隨機陣列成。可排序、URL 安全、不區分大小寫。
- Nano ID
- 由 64 個 URL 安全字元組成的短隨機 ID。21 位時抗碰撞能力與 UUID v4 相當。
各格式對比
| 型別 | 示例 | 長度 | 可排序 |
|---|---|---|---|
| UUID v4 | 9b2e4c1a-7f3d-4e8b-a1c2-5d6e7f8091a2 |
36 | 否 |
| UUID v7 | 0199855e-7a40-7c3b-9e1f-2a3b4c5d6e7f |
36 | 是 |
| ULID | 01K5JQ8H2G7R4T6W9X3Y5Z7A1B |
26 | 是 |
| Nano ID | V1StGXR8_Z5jdHi6B-myT |
21 | 否 |
在程式碼中生成 UUID
- JavaScript:
crypto.randomUUID()(v4) - Python:
uuid.uuid4();Python 3.14 起支援uuid.uuid7() - PostgreSQL:
gen_random_uuid()(v4);PostgreSQL 18 起支援uuidv7() - Java:
UUID.randomUUID()(v4) - MySQL:
UUID()生成的是 v1,可用UUID_TO_BIN(UUID(), 1)調整位元組順序以改善索引
常見問題
生成的 UUID 會重複嗎?
實際上不會。v4 有 122 位隨機數,要生成約 2.7 × 10¹⁸ 個,才有 50% 的機率出現一次重複。
主鍵該用 UUID v4 還是 v7?
新表一般推薦 v7。隨機的 v4 會插入到索引的任意位置,導致頻繁頁分裂、快取命中差;v7 像自增 ID 一樣按時間遞增,同時又能保證多臺伺服器之間不衝突。
UUID v7 會暴露記錄的建立時間嗎?
會,精確到毫秒。如果建立時間屬於敏感資訊,對外展示的 ID 請用 v4。
這些 ID 能當作安全令牌嗎?
隨機部分來自 crypto.getRandomValues,不可預測。但會話、重置密碼等令牌建議至少 128 位隨機數(例如 22 位的 Nano ID),不要用 v7,因為它的時間戳記部分可以猜到。
GUID 和 UUID 是一回事嗎?
是的。GUID 是微軟對同一種 128 位格式的叫法,常寫成大寫並帶花括號,上面可以直接選擇這種格式。
隱私說明
本工具完全在瀏覽器中執行,檔案和文字都在你的裝置上處理,不會上傳到我們的伺服器。