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.
| Versjon | Bygget fra | Eksempel |
|---|---|---|
| v1 | Gregoriansk tidsstempel + node-ID (MAC) | c232ab00-9414-11ec-b3c8-9f6bdeced846 |
| v3 | MD5-hash av et navnerom + navn | 5df41881-3aed-3515-88a7-2f4a814cf09e |
| v4 | 122 tilfeldige biter | 919108f7-52d1-4320-9bac-f847db4148a8 |
| v5 | SHA-1-hash av et navnerom + navn | 2ed6657d-e927-568b-95e1-2665a8aea6a2 |
| v6 | v1-tidsstempel omordnet slik at ID-er sorteres etter tid | 1ec9414c-232a-6b00-b3c8-9f6bdeced846 |
| v7 | Unix-millisekunder + tilfeldige biter, sorterbar | 017f22e2-79b0-7cc3-98c4-dc0c0c07398f |
| v8 | Egendefinert oppsett bestemt av applikasjonen | 2489e9ad-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.