Oversigt over UUID-versioner
UUID har flere versioner, hver med forskellige egenskaber:
• v1: Baseret på tid og node-ID, ordnet men kan lække information
• v3: Baseret på navn og navneområde, bruger MD5-hash
• v4: Fuldt tilfældigt genereret, den mest brugte version
• v5: Baseret på navn og navneområde, bruger SHA-1-hash, mere sikker end v3
• v6: Forbedret version af v1, tidsdel sorteret i big-endian, bedre egnet til sortering
• v7: Ny version baseret på Unix-tidsstempel, kombinerer tidsrækkefølge og tilfældighed
Sådan vælger du den rigtige UUID-version
Vælg den mest passende version baseret på brugsscenariet:
• Har brug for sikkerhed: Vælg v4 (tilfældig) eller v5 (navn baseret på SHA-1)
• Har brug for sortering: Vælg v6 eller v7 (tidsbaseret og let at sortere)
• Har brug for determinisme: Vælg v3 eller v5 (samme input giver samme output)
• Har brug for ydeevne: Vælg v1 (hurtig generering)
• Specielle værdier: NIL (alle 0) eller MAX (alle F) til grænsetilfælde
Tilfældighed vs. determinisme
UUID v4 er fuldstændig tilfældig og egnet til de fleste anvendelsesscenarier. v3 og v5 er deterministiske, de samme navn og navneområde genererer altid den samme UUID, hvilket er egnet til situationer, der kræver ensartet mapping. v1, v6 og v7 indeholder tidsinformation og har i visse tilfælde en rækkefølge.
Tidsmæssighed og rækkefølge
v1, v6 og v7 indeholder alle tidsinformation, men behandler det på forskellige måder. v6 forbedrer v1's tidsorteringsproblem, v7 bruger Unix-tidsstempel for at give en enklere tidsrækkefølge. Hvis du har brug for UUID'er, der kan sorteres efter genereringstid, er v6 og v7 det bedre valg.
v1 kan lække genereringstid og nodeinformation (MAC-adresse). v4 er fuldstændig tilfældig og er det bedste valg til privatfølsomme scenarier. v3 bruger MD5-hash, hvilket er mindre sikkert end SHA-1-baseret v5. NIL og MAX er faste værdier og bør ikke bruges i sikkerhedsfølsomme scenarier, der kræver unikhed.
UUID bruges primært i scenarier, der kræver globalt unikke identifikatorer: distribuerede systemer, databaseprimærnøgler, sessions-id'er, filnavne, API-tokens osv. Valg af den rigtige version kan optimere ydeevne, sikkerhed og datoorganisation.