fixmint
SV

UUID v4 eller v7: vilken ska du använda, och varför spelar det roll?

Av · · uppdaterad 8 november 2026 · 5 min läsning

Använd UUID v4 när du behöver en slumpmässig identifierare och inget mer. Använd UUID v7 när identifieraren ska vara en databasnyckel, eller när du vill att ID:n ska sorteras efter skapelsetid. Båda är 128 bitar och skrivs i samma 36-teckens form, så skillnaden ligger i hur bitarna är ordnade. UUID-generatorn nedan skapar någon av versionerna, 1 till 500 i taget, direkt i din webbläsare.

UUID-generatorBehöver unika ID till min kodGör det gratis

Hur en UUID ser ut

En UUID, eller universellt unik identifierare, är ett 128-bitars tal skrivet som 32 hexadecimala siffror i fem grupper: 8, 4, 4, 4 och 12 siffror, åtskilda av bindestreck. Ett exempel är 3f2b8c1e-6d4a-4f7b-9c2e-8a1d5e0b7f63.

Två delar av talet är fasta. Fyra bitar anger versionen, så den tredje gruppen börjar med 4 för v4 eller 7 för v7. Två bitar anger varianten, så den fjärde gruppen börjar med 8, 9, a eller b. Resten bär själva identifieraren. Det är variant- och versionsbitarna som gör att en UUID v4 har 122 slumpmässiga bitar och inte 128.

UUID v4: slumpmässig

En UUID v4 är slumpmässig förutom de fasta bitarna. Dess 122 slumpmässiga bitar gör att en dubblett är extremt osannolik. Säg att du skapar en miljard UUID v4. Chansen att två av dem blir identiska är ungefär n i kvadrat delat med två gånger antalet möjliga värden, vilket ger cirka 10 upphöjt till minus 19. Med andra ord är kollisioner inget du behöver konstruera bort.

Uppskattningen förutsätter att generatorn hämtar sina bitar från en kryptografisk slumpkälla. En förutsägbar generator skulle underminera den. Det här verktyget använder webbläsarens kryptografiska slumpkälla, via crypto.randomUUID eller crypto.getRandomValues.

UUID v7: tid först

RFC 9562 definierar v7. De första 48 bitarna innehåller Unix-tiden i millisekunder, så ett ID som skapas senare har en större första del än ett ID som skapats tidigare. Därefter kommer versionsbitarna, sedan slumpmässiga bitar, variantbitarna och ännu fler slumpmässiga bitar. En del av det slumpmässiga utrymmet kan användas för en räknare, som håller ID:n i ordning när flera skapas inom samma millisekund.

Eftersom tiden kommer först, sorterar du v7-ID:n som text, i samma skiftläge, så sorteras de efter skapelsetid, ned till millisekunden. Det fungerar eftersom de hexadecimala siffrorna har fast bredd och tiden står först.

Tiden syns också. Den som läser en UUID v7 kan se ungefär när den skapades. Du kan kontrollera det själv med fältet Granska i UUID-generatorn, som gör om de första 48 bitarna till ett datum och en tid.

Varför v7 passar databasindex

Ett databasindex är oftast ett B-träd, en struktur som hålls sorterad efter nyckeln. När nyckeln är slumpmässig, som med v4, hamnar varje ny rad på en slumpmässig plats i indexet. Databasen måste då skriva till många olika delar av indexet, vilket ger fler sidsplittringar och fler cache-missar. I en stor tabell blir det mycket extra arbete.

En v7-nyckel är större än nästan alla nycklar som redan finns i indexet, eftersom tidsdelen växer. Nya rader läggs nära slutet av indexet, ungefär som med ett automatiskt ökande nummer. De senaste indexsidorna ligger kvar i minnet och skrivningarna blir ordentliga. Skillnaden syns tydligast i stora tabeller som växer hela tiden, och den är svår att märka i en liten.

Välja mellan v4 och v7

  • Primärnycklar i databaser, eller alla tabeller som växer över tid: v7. Indexet förblir ordnat.
  • Loggar, händelser eller meddelanden som du ofta sorterar på tid: v7, eftersom ID:t i sig bär ordningen.
  • Publika ID:n där skapelsetiden ska vara dold: v4. Ett v7-ID avslöjar när det skapades.
  • Många enheter med opålitliga klockor: v4 och v7 är båda unika, eftersom slumpbitarna sköter det. Det är bara sorteringsordningen för v7 som förutsätter att klockorna stämmer.

Båda versionerna är standard, men äldre bibliotek känner kanske bara till v4. RFC 4122 beskrev versionerna 1 till 5 under många år. RFC 9562 publicerades i maj 2024, ersätter RFC 4122 och definierar versionerna 6, 7 och 8. Kontrollera att ditt bibliotek stöder v7 innan du förlitar dig på det.

Lagra UUID:er

En UUID skriven som text tar 36 tecken. Dess 16 byte kan lagras i binär form, vilket tar betydligt mindre plats. Många databaser har en inbyggd UUID-typ eller en binärkolumn på 16 byte för detta, och den jämförs snabbare än text.

Välj ett format och håll dig till det. Versaler, gemener, bindestreck och klammerparenteser är samma UUID för en människa, men en databas eller en strängjämförelse kan behandla dem som olika värden. Generatorns alternativ för versaler, utan bindestreck och med klammerparenteser finns för system som kräver just de formerna.

Använd aldrig en UUID som hemlighet

En UUID är en identifierare, inte ett lösenord, en sessionstoken eller en åtkomstnyckel. Den är byggd för att vara unik, inte för att vara omöjlig att gissa. En UUID v7 bär dessutom sin skapelsetid. Och identifierare klistras in i länkar, loggar, e-postmeddelanden och skärmbilder, där vem som helst som ser dem kan använda dem igen.

Åtkomstkontroll hör hemma på servern. Den som känner till ett ID ska inte automatiskt få se eller ändra posten som det pekar på. För lösenord, lösenfraser eller tokens, använd en generator som är byggd för hemligheter. Lösenordsgeneratorn skapar slumpmässiga lösenord eller ordlösenfraser på din enhet med säker slumpgenerering, och den uppskattar deras styrka. För bakgrund om varför längd och slumpmässighet spelar roll, läs starka lösenord och entropi.

Så använder du verktyget

  1. Välj version 4 för slumpmässiga ID:n, eller version 7 för ID:n som sorteras efter tid.
  2. Ange antal, från 1 till 500 i taget.
  3. Bocka i versaler, utan bindestreck eller klammerparenteser om din kod kräver en viss form.
  4. Kopiera alla, eller ladda ned listan som en .txt-fil.
  5. Klistra in valfri UUID under Granska för att läsa dess version, dess variant och, för v7, tiden som finns inbäddad i den.

Snabba svar

Är en UUID v4 unik? I praktiken ja. Dess 122 slumpmässiga bitar gör en dubblett så osannolik att du inte behöver kontrollera efter en.

Ska jag använda v7 för allt? Inte alltid. Använd v7 för databasnycklar och allt som sorteras efter tid. Använd v4 när skapelsetiden ska vara dold.

Kan jag använda en UUID som lösenord? Nej. Den är en identifierare. Använd en lösenordsgenerator för allt som måste hållas hemligt.

Skickar verktyget ID:n någonstans? Nej. ID:n skapas och visas i din webbläsare, och de skickas inte till någon server.

Översatt från Engelsk original med hjälp av AI.

Kommentarer

    Inga kommentarer än. Var först.

    Ditt betyg (valfritt)

    Din e-post visas eller sparas aldrig.

    Omslag till Open Data for AGI - Why Public, Free, and Open Datasets MatterOpen Data for AGI - Why Public, Free, and Open Datasets Matter

    Varför offentliga, fria och öppna datamängder kommer att forma generell artificiell intelligens lika mycket som algoritmer och beräkningskraft gör.

    $4.99Köp på GumroadPå engelska