Vad en UUID egentligen är
En UUID, kort för Universally Unique Identifier, är ett 128-bitarsvärde som används för att märka något utan att först fråga någon om lov. Du kanske också ser den kallas GUID, eller Globally Unique Identifier, vilket helt enkelt är namnet Microsoft gav samma idé inuti Windows och .NET-världen. De två termerna beskriver samma 128-bitarstal i nästan alla fall som spelar roll, så när en kollega säger GUID och du säger UUID pratar ni nästan alltid om exakt samma sak.
Dessa 128 bitar skrivs normalt som 32 hexadecimala siffror uppdelade i fem grupper med bindestreck, i mönstret 8-4-4-4-12. Ett typiskt värde ser ut som 123e4567-e89b-12d3-a456-426614174000. Bindestrecken har ingen egen betydelse; de finns bara för att en människa ska kunna läsa värdet utan att tappa bort sig. Varje tecken är en hexsiffra från 0 till f, vilket är varför en UUID känns tätare än ett vanligt tal trots att det, under ytan, bara är ett enda mycket stort heltal.

Versioner, och varför v4 vinner
Standarden definierar flera versioner, och de skiljer sig i hur bitarna fylls. Version 1 är tidsbaserad: den väver samman aktuell tidsstämpel och maskinens nätverks-MAC-adress. Det gör v1-värden sorterbara efter skapandetid, men det läcker också information om var och ungefär när de skapades, vilket inte alltid är önskvärt. Version 3 och 5 är namnbaserade och hashar ett namnrymd plus ett namn så att samma indata alltid ger samma identifierare.
Version 4 tar en helt annan väg. Den är nästan ren slump. Av de 128 bitarna är sex reserverade för att markera version och variant, vilket lämnar 122 bitar att fylla med slumpdata. Det finns ingen tidsstämpel, ingen MAC-adress, ingen namnrymd, bara brus. Det är precis därför de flesta generatorer, inklusive den här, producerar v4 som standard. Den avslöjar ingenting om enheten eller tidpunkten för skapandet, och den kräver ingen samordning mellan parterna som skapar den. Verktyget på den här sidan körs helt i din webbläsare, så slumpvärdena lämnar aldrig din maskin.
Hur osannolik en kollision egentligen är
Den rimliga oron är att två slumpmässiga UUID:er en dag skulle kunna bli identiska. Med 122 slumpbitar är utrymmet av möjliga v4-värden 2 upphöjt till 122, vilket är ungefär 5,3 följt av 36 nollor. Uttryckt mänskligt skulle du behöva generera miljarder UUID:er varje sekund i många decennier innan sannolikheten för en enda dubblett steg till något mätbart. Standarden själv beskriver risken för en krock som tillräckligt nära noll för att vara försumbar. I praktiken behandlar team v4 som unikt och går vidare, och de har rätt i det.

Var utvecklare tar till dem
Eftersom unikheten inte kräver någon central myndighet passar UUID:er utmärkt där samordning är dyrt eller omöjligt. De passar naturligt som primärnycklar i databaser, särskilt när flera tjänster var för sig infogar rader och du inte kan pausa för att fråga en delad räknare om nästa nummer. I distribuerade system kan två noder på var sin sida av jordklotet mynta identifierare i exakt samma ögonblick utan att någonsin krocka. De driver också API-idempotensnycklar, där en klient fäster en UUID på en begäran så att servern säkert kan ignorera en dubblett om nätverket gör om anropet. Sessionstoken, filnamn, händelse-ID och meddelandenycklar lutar sig alla mot samma egenskap.
UUID mot auto-inkrementerande ID:n
Det klassiska alternativet är det auto-inkrementerande heltalet: 1, 2, 3, och så vidare. Sekventiella ID:n är kompakta, sorterar naturligt och är lätta att läsa, men de har verkliga nackdelar. De avslöjar hur många poster som finns och låter utomstående gissa sig till angränsande värden, och de tvingar varje infogning genom en enda räknare, vilket blir en flaskhals när du delar upp en databas eller slår ihop data från många källor. UUID:er löser de problemen genom att låta vilken part som helst generera en nyckel oberoende och genom att inte avslöja något om volym eller ordning. Priset är storlek och lite mindre lokalitet i index. För system som skalar ut eller måste dölja sina inre delar är det bytet oftast värt att göra. Du kan utforska det här och liknande verktyg i vår samling av generatorer, eller bläddra bland det bredare utbudet av utvecklarverktyg för relaterade byggstenar.
Vanliga frågor
Är en GUID samma sak som en UUID?
För vardagsbruk, ja. GUID är Microsofts namn för samma 128-bitars identifierare. Den enda verkliga skillnaden är byteordning i den råa binära formen på vissa Windows-system; i strängform är de identiska och utbytbara.
Vilken UUID-version genererar det här verktyget?
Det genererar version 4, den slumpmässiga varianten. Av dess 128 bitar fylls 122 med slumpdata, vilket gör att varje värde är extremt osannolikt att upprepas och innebär att det inte bär någon tidsstämpel eller enhetsinformation.
Kan två UUID:er någonsin bli likadana?
I teorin är sannolikheten inte exakt noll, men med omkring 5,3 gånger 10 upphöjt till 36 möjliga v4-värden är den så liten att den behandlas som försumbar. Du skulle behöva generera astronomiska mängder av dem innan en krock blev sannolik.
Varför använda en UUID istället för ett auto-inkrementerande nummer?
UUID:er kan skapas oberoende av vilken tjänst som helst utan en delad räknare, de avslöjar inte antal poster eller ordning, och de gör det smärtfritt att slå ihop data från många källor. Auto-inkrementerande ID:n är mindre men blir en flaskhals och läcker information i stor skala.
Genereras UUID:erna på en server?
Nej. Det här verktyget körs helt i din webbläsare, så slumpvärdena produceras lokalt och skickas aldrig någonstans. Det gör det säkert att använda för nycklar och token du tänker hålla privata.
Vad betyder bindestrecksmönstret?
Grupperingen 8-4-4-4-12 är bara en läsbarhetskonvention. Bindestrecken bär ingen data; de delar upp de 32 hexsiffrorna i klumpar så att människor lättare kan skanna av och jämföra värden.
