如果這個工具幫到了你,可以請作者喝杯咖啡 ☕
為開發者和系統設計批次生成多種版本(V1-V7)的唯一識別符號UUID/GUID。
完全隨機生成,最常用的版本
當您需要為資料庫記錄、API介面、分散式系統或檔案建立全域性唯一的識別符號時,手動構造既容易衝突又不符合標準。UUID(通用唯一識別符號)是一種由128位數字組成的字串,用於在分散式系統中無需中央協調即可生成唯一ID。本工具支援批次生成從V1到V7共七種RFC標準版本的UUID,每種版本採用不同的生成演算法,例如基於時間的V1、基於隨機數的V4,或基於名稱空間和名稱雜湊的V3/V5。
問:UUID版本V4和V1有什麼區別?
V4基於隨機數生成,完全隨機,碰撞機率極低,適用於大多數無需時間順序的場景。V1基於時間戳、MAC地址和序列號生成,能保證時間上的單調遞增,適合需要按時間排序的日誌或記錄,但可能洩露生成主機資訊。
問:什麼是名稱空間(Namespace)?它有什麼用?
名稱空間本身也是一個UUID,用於在生成V3(MD5)或V5(SHA-1)版本的UUID時,與一個“名稱”(如URL、域名)共同進行雜湊運算,從而為同一個名稱在不同名稱空間下生成不同的、但確定性(可重現)的UUID。例如,用DNS名稱空間為“example.com”生成的V5 UUID,在任何地方、任何時間計算都是同一個值。
使用V3或V5版本時,必須提供有效的名稱空間UUID和名稱字串。自定義名稱空間必須為標準UUID格式(8-4-4-4-12的十六進制數字)。V1/V6/V7版本可選填時間戳、節點ID和時鐘序列,若留空則使用當前系統時間與預設值。請注意,V3版本基於MD5雜湊演算法,其抗碰撞性弱於SHA-1,在對安全性要求極高的場景中,建議優先使用V5版本。
在選擇UUID版本時,需權衡唯一性、可讀性、排序需求和安全性。對於需要全域性隨機且無排序要求的場景(如會話ID、臨時令牌),V4是最通用選擇。若需要為同一資源(如使用者郵箱)生成永久且可驗證的唯一ID,應使用V5版本,並約定好名稱空間(如使用公司特定的UUID)。一個典型示例是:使用DNS名稱空間(6ba7b810-9dad-11d1-80b4-00c04fd430c8)和名稱“user@example.com”,透過V5演算法生成的UUID始終是“5df41881-3aed-3515-88a7-2f4a814cf09e”。批次生成用於測試資料時,注意單次上限為100個,如需更多可多次操作。