Az UUID-nak több verziója van, mindegyik különböző tulajdonságokkal rendelkezik:
• v1: Idő és csomópont ID alapján, rendezett de információkat felfedhet
• v3: Név és névtér alapján, MD5 hash használatával
• v4: Teljesen véletlenszerűen generált, a leggyakrabban használt verzió
• v5: Név és névtér alapján, SHA-1 hash használatával, biztonságosabb mint a v3
• v6: A v1 továbbfejlesztett verziója, az időrész nagy végű sorrendben, jobban alkalmas rendezésre
• v7: Unix időbélyeg alapú új verzió, időbeliség és véletlenszerűség kombinálása
Hogyan válasszuk ki a megfelelő UUID verziót
Válassza ki a legmegfelelőbb verziót az alkalmazási forgatókönyv alapján:
• Biztonság szükséges: válassza a v4-et (véletlenszerű) vagy v5-öt (SHA-1 alapú név)
• Rendezés szükséges: válassza a v6-ot vagy v7-et (időalapú és könnyen rendezhető)
• Determinizmus szükséges: válassza a v3-at vagy v5-öt (ugyanaz a bemenet ugyanazt a kimenetet adja)
• Teljesítmény szükséges: válassza a v1-et (gyors generálás)
• Speciális értékek: NIL (minden 0) vagy MAX (minden F) határesetekhez
Véletlenszerű és determinisztikus
Az UUID v4 teljesen véletlenszerű, a legtöbb alkalmazási forgatókönyvhöz ideális. A v3 és v5 determinisztikus, ugyanaz a név és névtér mindig ugyanazt az UUID-t generálja, ami konzisztens leképezéshez ideális. A v1, v6 és v7 időinformációt tartalmaz, bizonyos feltételek mellett sorrendiséggel rendelkezik.
Időbeliség és sorrendiség
A v1, v6 és v7 mind tartalmaz időinformációt, de különböző módon kezeli. A v6 javítja a v1 időrendezési problémáit, a v7 Unix időbélyeget használ egyszerűbb időbeliség biztosításához. Ha idő szerinti rendezésre van szüksége, a v6 és v7 a jobb választás.
A v1 felfedheti a generálási időt és csomópont információkat (MAC cím). A v4 teljesen véletlenszerű, a magánéletérzékeny forgatókönyvekhez a legjobb választás. A v3 MD5 hash-t használ, kevésbé biztonságos mint a SHA-1-et használó v5. A NIL és MAX fix értékek, nem használhatók egyediség igénylő biztonságos forgatókönyvekben.
Az UUID-t főként globálisan egyedi azonosítókra van szükség esetén használják: elosztott rendszerek, adatbázis kulcsok, munkamenet azonosítók, fájlnevek, API tokenek stb. A megfelelő verzió kiválasztásával optimalizálható a teljesítmény, biztonság és adatszervezés.