Översikt över UUID-versioner
UUID har flera versioner, varje version har olika egenskaper:
• v1: Baserad på tid och nod-ID, ordnad men kan läcka information
• v3: Baserad på namn och namnutrymme, använder MD5-hash
• v4: Helt slumpmässigt genererad, den vanligaste versionen
• v5: Baserad på namn och namnutrymme, använder SHA-1-hash, säkrare än v3
• v6: Förbättrad version av v1, tidsdelen är ordnad för bättre sortering
• v7: Ny version baserad på Unix-tidsstämpel, kombinerar tidsordning och slumpmässighet
Hur man väljer rätt UUID-version
Välj den mest lämpliga versionen baserat på användningsscenario:
• Behov av säkerhet: Välj v4 (slumpmässig) eller v5 (namnbaserad med SHA-1)
• Behov av sortering: Välj v6 eller v7 (tidsbaserad och lätt att sortera)
• Behov av determinism: Välj v3 eller v5 (samma inmatning ger samma utmatning)
• Behov av prestanda: Välj v1 (snabb generering)
• Specialvärden: NIL (alla nollor) eller MAX (alla F) för gränsfall
Slumpmässighet och determinism
UUID v4 är helt slumpmässig och lämplig för de flesta applikationsscenarier. v3 och v5 är deterministiska, samma namn och namnutrymme genererar alltid samma UUID, vilket är lämpligt för situationer där konsekvent mappning behövs. v1, v6 och v7 innehåller tidsinformation och har en viss ordning under specifika förhållanden.
Tidsmässighet och ordning
v1, v6 och v7 innehåller alla tidsinformation men hanterar den på olika sätt. v6 förbättrar tidsordningsproblemen med v1, v7 använder Unix-tidsstämpel för enklare tidsordning. Om du behöver UUID som kan sorteras efter genereringstid är v6 och v7 bättre val.
v1 kan läcka genereringstid och nodinformation (MAC-adress). v4 är helt slumpmässig och det bästa valet för integritetskänsliga scenarier. v3 använder MD5-hash och är mindre säker än v5 som använder SHA-1. NIL och MAX är fasta värden och bör inte användas i säkerhetskänsliga scenarier där unikhet krävs.
UUID används främst i scenarier där globalt unika identifierare behövs: distribuerade system, databasnycklar, sessionsidentifierare, filnamn, API-tokens etc. Att välja rätt version kan optimera prestanda, säkerhet och dataorganisation.