🌐 SV

🆔 UUID-generator

Skapa Universally Unique Identifiers (UUID). Skapa standard-UUID:er för databasnycklar, API-token, sessions-ID:n och mer.

Versionsinfo

v1 (tidsstämpelbaserad)
Baserad på MAC-adress och tidsstämpel. Tidsordnad.
v4 (slumpmässig)
Helt slumpmässig. Mest använd.
v7 (tidsstämpelsorterad)
Tidsstämpelbaserad och sorteringsbar. Senaste standarden.
GUIDE

Las mer

01

1. Vad är UUID?

UUID (Universally Unique Identifier) är en 128-bitars identifierare som garanterar unikhet utan central samordning. Den representeras i hexadecimal form som 8-4-4-4-12 (t.ex. 550e8400-e29b-41d4-a716-446655440000), och sannolikheten för dubletter är extremt låg när den genereras var som helst i världen. Används i primärnycklar i databaser, sessions-ID:n, filnamn, API-token och mer. Kallas också GUID (Globally Unique Identifier) och definieras av RFC 4122-standarden.

02

2. Jämförelse av UUID-versioner

Det finns 5 UUID-versioner, var och en med olika genereringsmetoder. v1 kombinerar MAC-adress och tidsstämpel för att garantera tidsordning men har säkerhetsrisker genom att MAC-adressen exponeras. v4 är helt slumpmässig och används mest tack vare hög oförutsägbarhet. v7 är den senaste versionen, standardiserad 2024, tidsstämpelbaserad och sorteringsbar med fördelar för databasindexering. v2 används för DCE-säkerhet, v3/v5 är namnutrymmesbaserade för särskilda ändamål.

03

3. Användningsområden för UUID

UUID:er är användbara i många situationer. I distribuerade system kan unika ID:n genereras utan en central server, vilket ger utmärkt skalbarhet. I databaser undviker man sammanslagningskonflikter genom att använda UUID som primärnycklar i stället för autoinkrement-ID:n. I mikrotjänstarkitekturer används de för att spåra kommunikation mellan tjänster. De används också ofta för att förhindra kollisioner i filnamn vid uppladdning, generering av temporära token, händelsespårning och analys av loggkorrelation.

04

4. Välja mellan v1, v4 och v7

Valet av UUID-version beror på kraven. Välj v1 om tidsordning är viktig och exponering av MAC-adress är acceptabelt. Men MAC-adresser kan avslöja var genereringen skedde, vilket väcker integritetsfrågor. v4 är det bästa valet om säkerhet är viktigt och ordning inte behövs. Den är helt slumpmässig, oförutsägbar och exponerar ingen personlig information. v7 rekommenderas om du vill ha både tidsordning och säkerhet. Tidsstämpelbaserad sortering ger bra databasprestanda och mindre indexfragmentering.

05

5. UUID:s unikhetsgaranti

Kollisionssannolikheten för UUID:er är astronomiskt låg. För v4 är 122 bitar slumpmässiga, vilket ger 2^122 = 5.3 x 10^36 möjliga kombinationer. Även om du genererar 1 miljard per sekund skulle det ta 85 år att nå 50 % kollisionssannolikhet. v1 garanterar tidsbaserad unikhet med tidsstämpel (60 bitar) och klocksekvens (14 bitar), samt platsbaserad unikhet med MAC-adress (48 bitar). v7 kombinerar Unix-tidsstämpel (48 bitar) och slumpmässighet (74 bitar) för att uppfylla både tidsordning och unikhet.

06

6. Använda UUID i databaser

Att använda UUID som primärnycklar i databaser har flera fördelar. I distribuerade miljöer kan varje nod skapa ID:n oberoende av en central ID-generator, vilket ger utmärkt skalbarhet. Det uppstår inga ID-konflikter vid sammanslagning av data, och sekventiell gissning är omöjlig när de exponeras i URL:er, vilket ger säkerhetsfördelar. Det finns dock nackdelar. Med 16 byte är de större än heltal (4-8 byte), och v4:s slumpmässighet kan försämra indexprestanda. I sådana fall förbättrar v7 med tidsordnad sortering prestandan för B-tree-index.

Vanliga fragor

Ska jag välja UUID v1, v4 eller v7?
Välj v4 om säkerhet är viktigt och ordning inte behövs, eller v7 om du vill ha tidsbaserad sortering och bättre prestanda för databasindex. v1 exponerar MAC-adressen, vilket väcker integritetsfrågor, så den rekommenderas inte om du inte har ett specifikt behov.
Finns det någon risk att UUID:er kolliderar?
Med v4 finns 2^122 möjliga kombinationer - även om du genererar 1 miljard per sekund skulle det ta 85 år att nå 50 % kollisionssannolikhet. I praktiken är kollisioner inget verkligt problem.
Kan jag generera flera UUID:er samtidigt?
Ja, du kan ange antal och generera upp till 100 åt gången, och sedan använda "Kopiera alla" för att ta dem tillsammans.
Kan jag använda UUID som primärnycklar i databaser?
Ja. Det låter distribuerade system skapa unika ID:n utan central samordning, även om v4:s slumpmässighet kan orsaka indexfragmentering - använd v7 om du behöver tidsordnad sortering.
Är UUID och GUID samma sak?
Ja, GUID (Globally Unique Identifier) är Microsofts namn för i princip samma koncept, och båda följer RFC 4122-standarden.