UUID / ULID 產生器
為資料庫列、事件、記錄、網址和測試 fixture 建立單一 ID 或一批 ID。
數量:
目前: UUID-V4數量: 0
UUID 是什麼?
UUID 是 128-bit identifier,常以 32 個十六進位字元並用連字號分隔呈現。它設計目標是在不詢問中央服務下一個 ID 的情況下,提供實務上足夠唯一的識別碼。
UUID v4(建議): 隨機產生。在一般應用程式工作負載中碰撞機率極低,因此 UUID v4 很適合作為 database rows、events、test fixtures 和公開 object IDs 的預設選擇。
UUID v1: 由 timestamp 和 node 相關資訊產生。排序性較好,但可能揭露時間和機器細節,因此通常不是公開 IDs 的第一選擇。
ULID 是什麼?
ULID 是可依字典序排序的 UUID 替代方案,維持同樣 128-bit 大小,同時產生更容易依時間排序的 IDs。
可排序: ULID 會自然依產生時間排序,有助於 indexing 和記錄檢查。
網址安全: ULIDs 使用 Crockford Base32,避開 I、L、O、U 等容易混淆字元。
可互通: 它們維持精簡,也對許多 UUID 常見工作負載提供足夠唯一性。
常見問題
UUID v4 有可能碰撞嗎?
理論上有可能,但機率低到在實務應用工作負載中可忽略。
應該用 UUID 還是 ULID?
需要時間排序時使用 ULID。想要最熟悉、支援最廣的隨機 identifier 格式時,使用 UUID v4。
這個產生器安全嗎?
是。IDs 會在瀏覽器本機產生,不會送到伺服器。
可以把 UUID 當 secret token 嗎?
不要把一般 UUID 當成 secret。它們是識別碼,不是驗證憑證。密碼重設連結、API key 和 session secret 應使用專門的 cryptographic token。
為什麼有些團隊喜歡用 ULID 做資料庫記錄?
ULID 會依建立時間排序,讓記錄、event stream 和部分 index 更容易檢查。代價是 ID 會暴露產生時間。