UltKit

UUID-generator

Skapa slumpade UUID av version 4, från en till hundra åt gången, och kopiera dem som en lista. De kommer från webbläsarens kryptografiskt säkra slumpgenerator, och en kontrollfunktion visar version och variant för alla UUID du klistrar in.

0 tecken · 0 ord · 0 rader

Körs helt i den här webbläsarfliken. Din text laddas aldrig upp eller sparas.

UUID-versioner

Versionen är första siffran i tredje gruppen; varianten kodas i första siffran i fjärde gruppen (8, 9, a eller b för RFC-UUID:n). Exemplen är testvektorerna från RFC 9562.

VersionByggd frånExempel
v1Gregoriansk tidsstämpel + nod-ID (MAC)c232ab00-9414-11ec-b3c8-9f6bdeced846
v3MD5-hash av namnrymd + namn5df41881-3aed-3515-88a7-2f4a814cf09e
v4122 slumpmässiga bitar919108f7-52d1-4320-9bac-f847db4148a8
v5SHA-1-hash av namnrymd + namn2ed6657d-e927-568b-95e1-2665a8aea6a2
v6v1-tidsstämpel omordnad så att ID:n sorteras efter tid1ec9414c-232a-6b00-b3c8-9f6bdeced846
v7Unix-millisekunder + slumpbitar, sorterbar017f22e2-79b0-7cc3-98c4-dc0c0c07398f
v8Eget upplägg som definieras av applikationen2489e9ad-2ee2-8e00-8ec9-32d5f69181c0

Vad ett UUID är och hur du läser det

En UUID (universally unique identifier, kallas GUID i Microsofts programvara) är ett 128-bitarstal som skrivs som 32 hexadecimala siffror i grupper om 8-4-4-4-12, till exempel f47ac10b-58cc-4372-a567-0e02b2c3d479. Den standardiserades i RFC 4122 år 2005. I maj 2024 ersattes det dokumentet av RFC 9562, som behåller de gamla versionerna och lägger till tre nya. Två positioner är fasta: den första siffran i den tredje gruppen är versionen (4:an i 4372), och den första siffran i den fjärde gruppen anger varianten, som är 8, 9, a eller b för alla UUID som följer RFC:n.

Version 4 fyller de övriga 122 bitarna med slumpdata. Utrymmet är så stort att du skulle behöva generera ungefär 2,7 triljoner (2,7 × 10¹⁸) av dem för att ha 50 % chans till en enda dubblett, vilket är anledningen till att system skapar v4-ID:n oberoende av varandra på många maskiner utan samordning. Den här sidan använder crypto.randomUUID, eller crypto.getRandomValues där den saknas, aldrig Math.random, vars utdata inte är gjord för att vara oförutsägbar. Alternativen Versaler och Utan bindestreck ändrar bara formateringen. Värdet är detsamma, och de flesta parsers godtar båda skrivsätten.

v4, v7 och de andra versionerna

Version 1 och 6 bygger på en tidsstämpel och ett nod-ID, ursprungligen datorns MAC-adress, vilket avslöjar var och när ID:t skapades. Version 3 och 5 hashar en namnrymd och ett namn med MD5 eller SHA-1, så samma indata ger alltid samma UUID. Version 8 är ett fritt upplägg för egna scheman. Nykomlingen som betyder mest är version 7: den börjar med en 48-bitars Unix-tidsstämpel i millisekunder och fyller resten med slumpbitar, så att ID:n sorteras efter skapandetid.

Den sorteringen är skälet att överväga v7 som primärnyckel i databaser. Slumpmässiga v4-nycklar hamnar överallt i ett B-trädindex, delar sidor och försämrar cache-lokaliteten när en tabell växer, medan v7-nycklar kommer i ungefär stigande ordning som en auto-increment-kolumn, men ändå kan genereras utan central räknare. Välj v4 när du vill ha ett ID som inte avslöjar något, inte ens när det skapades. Välj v7 när prestanda vid inmatning och tidsordning är viktigt. Ett UUID är en identifierare, inte en hemlighet: för lösenord och API-hemligheter använder du en särskild lösenordsgenerator. Fler kodare och inspektörer finns bland utvecklarverktygen.

Vanliga frågor

Kan två slumpade UUID någonsin bli likadana?
Teoretiskt ja, i praktiken nej. Med 122 slumpbitar skulle även en miljard v4-UUID per sekund i ungefär 86 år ge bara runt 50 % chans till en enda kollision, förutsatt att slumpkällan är pålitlig.
Vad är skillnaden mellan UUID och GUID?
Ingen i sak. GUID är Microsofts namn på samma 128-bitars identifierare. Vissa Microsoft-verktyg visar GUID med versaler eller inom klammerparenteser, vilket kontrollen här godtar.
Hur ser jag vilken version ett UUID har?
Titta på den första siffran i den tredje gruppen: 4 betyder slumpmässig, 7 betyder tidsordnad, 1 betyder tidsstämpel plus nod. Klistra in den i Kontrollera ett UUID för att se version och variant.
Bör jag använda UUIDv7 i stället för v4 som databasnycklar?
Ofta ja. v7-nycklar är tidsordnade, vilket håller B-trädindex kompakta och inmatningen snabb. Håll dig till v4 om skapandetiden i ett v7-ID ska förbli privat.
Är det säkert att använda ett UUID som token för lösenordsåterställning?
Ett v4-UUID från en säker generator har 122 slumpbitar, vilket räcker för att inte kunna gissas, men många bibliotek erbjuder särskilda tokenfunktioner med tydlig giltighetstid. Använd aldrig tidsbaserade versioner som v1 eller v7 som hemligheter.