UUID 產生器
批次產生加密等級隨機的 UUID v4 識別碼。
UUID v4
5
產生結果0 字元
設計上就保護隱私。 UUID 使用 Web Crypto API 在本機產生,不會傳送也不會被記錄。
常見問題
什麼是 UUID v4?
一個 128 位元的識別碼,其中 122 位元是隨機產生的。它不需要任何中央協調機制,因此很適合由多台機器各自獨立產生 ID 的情境。
這些 UUID 可以用在正式環境嗎?
可以。它們來自 Web Crypto API,那是加密安全的隨機來源,所以產生的值無法被預測。
兩個 UUID 有可能碰撞嗎?
理論上有,實務上沒有。就算每秒產生十億個 UUID 持續一百年,出現一次碰撞的機率仍然可以忽略不計。
我該用 UUID 當資料庫主鍵嗎?
可以運作,但隨機 UUID 會讓 B-tree 索引碎片化,因為每次插入都落在隨機位置。如果寫入量很大,可以考慮 UUID v7 或其他可排序的 ID 方案。
關於UUID 產生器
版本 4 的 UUID 共 128 位元,其中 122 位元是隨機的,6 位元是固定的版本與變體標記,書寫成 32 個十六進位數字並以 8-4-4-4-12 的樣式分組。
隨機性來自 crypto.getRandomValues,也就是產生金鑰材料時所用的同一個加密安全來源,而不是 Math.random。碰撞機率小到可以直接忽略:你大約要產生 10^18 個識別碼,重複才會開始變得有可能。
需要精簡的資料庫欄位時可以關掉連字號;要符合微軟風格的 GUID 格式時則開啟大寫。