UltKit

UUID-generator

Lag tilfeldige UUID-er av versjon 4, fra én til hundre om gangen, og kopier dem som en liste. De kommer fra nettleserens kryptografisk sikre tilfeldighetsgenerator, og en kontroll viser versjon og variant for alle UUID-er du limer inn.

0 tegn · 0 ord · 0 linjer

Kjører helt i denne nettleserfanen. Teksten din lastes aldri opp eller lagres.

UUID-versjoner

Versjonen er det første sifferet i den tredje gruppen; varianten er kodet i det første sifferet i den fjerde gruppen (8, 9, a eller b for RFC-UUID-er). Eksemplene er testvektorene fra RFC 9562.

VersjonBygget fraEksempel
v1Gregoriansk tidsstempel + node-ID (MAC)c232ab00-9414-11ec-b3c8-9f6bdeced846
v3MD5-hash av et navnerom + navn5df41881-3aed-3515-88a7-2f4a814cf09e
v4122 tilfeldige biter919108f7-52d1-4320-9bac-f847db4148a8
v5SHA-1-hash av et navnerom + navn2ed6657d-e927-568b-95e1-2665a8aea6a2
v6v1-tidsstempel omordnet slik at ID-er sorteres etter tid1ec9414c-232a-6b00-b3c8-9f6bdeced846
v7Unix-millisekunder + tilfeldige biter, sorterbar017f22e2-79b0-7cc3-98c4-dc0c0c07398f
v8Egendefinert oppsett bestemt av applikasjonen2489e9ad-2ee2-8e00-8ec9-32d5f69181c0

Hva en UUID er, og hvordan du leser den

En UUID (universelt unik identifikator, kalt GUID i Microsoft-programvare) er et 128-biters tall skrevet som 32 heksadesimale sifre i grupper på 8-4-4-4-12, for eksempel f47ac10b-58cc-4372-a567-0e02b2c3d479. Den ble standardisert i RFC 4122 i 2005. I mai 2024 ble dokumentet erstattet av RFC 9562, som beholder de gamle versjonene og legger til tre nye. To posisjoner er faste: det første sifferet i den tredje gruppen er versjonen (4-tallet i 4372), og det første sifferet i den fjerde gruppen viser varianten, som er 8, 9, a eller b for alle UUID-er som følger RFC-en.

Versjon 4 fyller de resterende 122 bitene med tilfeldige data. Dette rommet er så stort at du må generere omtrent 2,7 trillioner (2,7 × 10¹⁸) for å ha 50 % sjanse for én eneste duplikat. Derfor kan systemer lage v4-ID-er uavhengig av hverandre på mange maskiner uten å koordinere seg. Denne siden bruker crypto.randomUUID, eller crypto.getRandomValues der den mangler, aldri Math.random, hvis resultat ikke er laget for å være uforutsigbart. Alternativene Store bokstaver og Uten bindestreker endrer bare formateringen. Verdien er den samme, og de fleste parsere godtar begge skrivemåter.

v4, v7 og de andre versjonene

Versjon 1 og 6 bygges av et tidsstempel og en node-ID, opprinnelig datamaskinens MAC-adresse, noe som avslører hvor og når ID-en ble laget. Versjon 3 og 5 hasher et navnerom og et navn med MD5 eller SHA-1, så samme input gir alltid samme UUID. Versjon 8 er en fri struktur for egne løsninger. Nykommeren som betyr mest, er versjon 7: den begynner med et 48-biters Unix-tidsstempel i millisekunder og fyller resten med tilfeldige biter, slik at ID-ene sorteres etter opprettelsestidspunkt.

Den rekkefølgen er grunnen til å vurdere v7 som primærnøkkel i databaser. Tilfeldige v4-nøkler havner over hele en B-tre-indeks, deler sider og svekker cache-lokaliteten når tabellen vokser. v7-nøkler kommer i omtrent stigende rekkefølge som en auto-increment-kolonne, men kan likevel genereres uten en sentral teller. Velg v4 når du vil ha en ID som ikke avslører noe, heller ikke når den ble laget. Velg v7 når innsettingsytelse og tidsrekkefølge er viktig. En UUID er en identifikator, ikke en hemmelighet: til passord og API-hemmeligheter bør du bruke en egen passordgenerator. Flere kodere og inspektører finner du blant utviklerverktøyene.

Ofte stilte spørsmål

Kan to tilfeldig genererte UUID-er noen gang bli like?
I teorien ja, i praksis nei. Med 122 tilfeldige biter ville selv en milliard v4-UUID-er i sekundet i omtrent 86 år gi bare rundt 50 % sjanse for én kollisjon, forutsatt at den tilfeldige kilden er god.
Hva er forskjellen mellom en UUID og en GUID?
Ingen i praksis. GUID er Microsofts navn på den samme 128-biters identifikatoren. Noen Microsoft-verktøy viser GUID-er med store bokstaver eller i krøllparenteser, og det godtar kontrollen her.
Hvordan ser jeg hvilken versjon en UUID har?
Se på det første sifferet i den tredje gruppen: 4 betyr tilfeldig, 7 betyr tidsordnet, 1 betyr tidsstempel pluss node. Lim den inn i Kontroller en UUID for å se versjon og variant.
Bør jeg bruke UUIDv7 i stedet for v4 som databasenøkler?
Ofte ja. v7-nøkler er tidsordnet, noe som holder B-tre-indekser kompakte og innsettinger raske. Bruk v4 hvis opprettelsestidspunktet i en v7-ID bør holdes privat.
Er det trygt å bruke en UUID som token for tilbakestilling av passord?
En v4-UUID fra en sikker generator har 122 tilfeldige biter, nok til å være umulig å gjette, men mange biblioteker har egne tokenfunksjoner med tydelig utløpstid. Bruk aldri tidsbaserte versjoner som v1 eller v7 som hemmeligheter.