🌐 DA

🆔 UUID-generator

Generér Universally Unique Identifiers (UUID). Opret standard UUID'er til databasenøgler, API-tokens, sessions-ID'er og meget mere.

Versionsinfo

v1 (tidsbaseret)
Baseret på MAC-adresse og tidsstempel. Tidsordnet.
v4 (tilfældig)
Helt tilfældig. Mest brugt.
v7 (tids-sorterbar)
Tidsstempel-baseret og sorterbar. Seneste standard.
GUIDE

Laes mere

01

1. Hvad er UUID?

UUID (Universally Unique Identifier) er en 128-bit identifikator, der garanterer unikhed uden central koordinering. Den repræsenteres som hexadecimale tal i formatet 8-4-4-4-12 (f.eks. 550e8400-e29b-41d4-a716-446655440000), og sandsynligheden for dubletter er ekstremt lav, når den genereres overalt i verden. Bruges til primære nøgler i databaser, sessions-ID'er, filnavne, API-tokens og meget mere. Også kaldet GUID (Globally Unique Identifier), defineret af RFC 4122-standarden.

02

2. Sammenligning af UUID-versioner

Der findes 5 UUID-versioner, som hver bruger forskellige genereringsmetoder. v1 kombinerer MAC-adresse og tidsstempel for at sikre tidsorden, men har sikkerhedsrisici ved eksponering af MAC-adressen. v4 er helt tilfældig og bruges mest på grund af høj uforudsigelighed. v7 er den seneste version, standardiseret i 2024, tidsbaseret og sorterbar samt fordelagtig for databaseindeksering. v2 bruges til DCE-sikkerhed, mens v3/v5 er navneområd-baserede til særlige formål.

03

3. Anvendelser af UUID

UUID'er er nyttige i mange situationer. I distribuerede systemer kan unikke ID'er genereres uden en central server, hvilket giver fremragende skalerbarhed. I databaser undgår brug af UUID'er som primære nøgler i stedet for auto-inkrement-ID'er konflikter ved sammenlægning. I mikrotjenestearkitekturer bruges de til at spore kommunikation mellem tjenester. De bruges også i vid udstrækning til at forhindre filnavnskonflikter ved upload, generering af midlertidige tokens, eventsporing og analyse af logkorrelation.

04

4. Valg mellem v1, v4 og v7

Valget af UUID-version afhænger af kravene. Vælg v1, hvis tidsorden er vigtig, og eksponering af MAC-adressen er acceptabel. MAC-adresser kan dog bruges til at spore genereringsstedet, hvilket giver privatlivsbekymringer. v4 er det bedste valg, hvis sikkerhed er vigtig, og orden ikke er nødvendig. Den er helt tilfældig, uforudsigelig og uden eksponering af personlige oplysninger. v7 anbefales, hvis du både vil have tidsortering og sikkerhed. Tidsstempel-baseret sortering giver god databaseydelse og mindre indeksfragmentering.

05

5. UUIDs unikhedsgaranti

Kollisionssandsynligheden for UUID'er er astronomisk lav. For v4 er 122 bits tilfældige, hvilket giver 2^122 = 5.3 x 10^36 mulige kombinationer. Selv ved generering af 1 milliard i sekundet ville det tage 85 år at nå en 50% kollisionssandsynlighed. v1 garanterer tidsbaseret unikhed med tidsstempel (60 bits) og clock sequence (14 bits) samt pladsspecifik unikhed med MAC-adresse (48 bits). v7 kombinerer Unix-tidsstempel (48 bits) og tilfældighed (74 bits) for at opfylde både tidsorden og unikhed.

06

6. Brug af UUID i databaser

Brug af UUID'er som primære databasenøgler har flere fordele. I distribuerede miljøer kan hver node uafhængigt oprette ID'er uden en central ID-generator, hvilket giver fremragende skalerbarhed. Der opstår ingen ID-konflikter ved datamerge, og sekventiel gætning er umulig, når ID'er eksponeres i URL'er, hvilket giver sikkerhedsfordele. Der er dog også ulemper. Med 16 bytes er de større end heltal (4-8 bytes), og v4's tilfældighed kan forringe indeksydelsen. I sådanne tilfælde forbedrer v7 med tidsordnet sortering ydeevnen for B-tree-indekser.

Ofte stillede sporgsmal

Skal jeg vælge UUID v1, v4 eller v7?
Vælg v4, hvis sikkerhed er vigtig, og orden ikke er nødvendig, eller v7, hvis du vil have tidsbaseret sortering og bedre databaseindeksydelse. v1 eksponerer MAC-adressen og giver privatlivsbekymringer, så den anbefales ikke, medmindre du har et specifikt behov.
Er der nogen risiko for, at UUID'er kolliderer?
Med v4 er der 2^122 mulige kombinationer — selv ved generering af 1 milliard i sekundet ville det tage 85 år at nå en 50% kollisionssandsynlighed. I praksis er kollisioner ikke et reelt problem.
Kan jeg generere flere UUID'er på én gang?
Ja, du kan angive antallet og generere op til 100 på én gang og derefter bruge "Kopiér alle" til at hente dem samlet.
Kan jeg bruge UUID'er som primære nøgler i databaser?
Ja. Det gør det muligt for distribuerede systemer at oprette unikke ID'er uden central koordinering, men v4's tilfældighed kan give indeksfragmentering — brug v7, hvis du har brug for tidsordnet sortering.
Er UUID og GUID det samme?
Ja, GUID (Globally Unique Identifier) er Microsofts navn for stort set det samme koncept, og begge følger RFC 4122-standarden.