Vad är ett UUID? En fullständig förklaring av universellt unika identifierare
Snabbt svar
En UUID är en 128-bit-identifierare representerad som 36 tecken (32 hex-siffror plus 4 bindestreck). UUID:er är praktiskt unika utan samordning —kollisionsrisken är försumbar. UUID v4 (random) är den vanligaste versionen. Använd vår gratis UUID Generator.
Introduktion
En UUID (Universally Unique Identifier), även kallad GUID (Globally Unique Identifier) i Microsoft-terminologi, är en 128-bit-identifierare som är praktiskt garanterad att vara unik utan central samordning. UUID:er är definierade av RFC 4122 och används ofta som databas-primärnycklar, request-ID:n, session-tokens och identifierare i distribuerade system. Den vanligaste versionen är UUID v4, som använder slumpmässiga bitar.
Steg för steg
-
Förstå strukturen UUID
En UUID är 128 bitar, visas som 32 hexadecimala siffror i 5 grupper: 8-4-4-4-12, åtskilda med bindestreck (t.ex. 550e8400-e29b-41d4-a716-446655440000). Den 13:e siffran anger versionen (4 för v4), och den 17:e siffran anger varianten.
-
Lär dig UUID-versionerna
v1: tidsbaserad (tidsstämpel + MAC-adress) — tidsbeställt men läcker identitet. v3: namnbaserad med MD5 hashing. v4: slumpmässigt — vanligast, inga integritetsproblem. v5: namnbaserad med SHA-1-hashning. v6 och v7: tidsbestämda med förbättrad integritet jämfört med v1.
-
Förstå kollisionssannolikhet
UUID v4 har 2^122 möjliga värden. Sannolikheten för en kollision mellan 103 biljoner UUID är 50 %. För praktisk användning (miljontals ID) är sannolikheten för kollisioner i praktiken noll - du kan generera UUID självständigt utan koordinering.
-
Använd UUID på lämpligt sätt
Använd v4 för nästan alla användningsfall (databas-ID, begäran-ID, sessionstokens). Använd v7 om du behöver tidsbeställda ID:n för databaslokalitet. Undvik v1 i säkerhetskänsliga sammanhang – den bäddar in en tidsstämpel och MAC-adress.
Exempel
UUID v4 (slumpmässigt)
Input: Genereras med crypto.getRandomValues
Produktion: 550e8400-e29b-41d4-a716-446655440000
UUID v1 (tidsbaserad)
Input: Tidsstämpel + MAC-adress
Produktion: a3bbf0ee-d6e4-11ed-a5b3-3c9703e8b4a1
Noll UUID
Input: All zeros
Produktion: 00000000-0000-0000-0000-000000000000
Vanliga problem
- Genom att använda Math.random() för UUID – är det inte kryptografiskt säkert. Använd crypto.getRandomValues() eller crypto.randomUUID() i webbläsare.
- Lagring av UUID som strängar —en UUID-sträng är 36 byte; lagrad som en UUID-typ (16 byte) är det mer effektivt. Använd den ursprungliga typen UUID i databaser när den är tillgänglig.
- Att använda v1 i säkerhetskänsliga sammanhang — v1 bäddar in en tidsstämpel och MAC-adress, som kan läcka information om när och var den genererades. Använd v4 för anonymitet.
- Förutsatt att UUID verkligen är unika – de är praktiskt taget unika (sannolikheten för kollisioner är försumbar), men inte matematiskt garanterade unika.
Tips
- Använd UUID v4 för nästan alla användningsfall — det är slumpmässigt, har inga sekretessproblem och stöds av alla moderna databaser.
- Använd crypto.randomUUID() i moderna webbläsare för en inbyggd v4-generator utan bibliotek.
- Lagra UUID som UUID/GUID-typ i databaser (16 byte) istället för strängar (36 byte) för bättre lagrings- och indexprestanda.
- Använd vår UUID Generator för att skapa UUID direkt i din webbläsare — ingen registrering, helt privat.