RevealTheme logo

UUID-generator

Genereer UUID v4 (willekeurige universally unique identifiers). Elke klik produceert een nieuwe.

Hoe u deze tool gebruikt

  1. 1

    Click the Generate UUID button to produce a fresh random v4 UUID.

  2. 2

    Read the 36-character identifier shown in the canonical 8-4-4-4-12 format below the button.

  3. 3

    Click Copy to put the UUID on your clipboard for pasting into code, a database, or a config file.

  4. 4

    Click Generate UUID again whenever you need another one — every click replaces the value with a brand-new random UUID.

Wat is een UUID en waarom gebruikt software deze?

Een UUID (Universally Unique Identifier, in Microsoft-context soms GUID genoemd) is een waarde van 128 bits die wordt gebruikt om entiteiten te identificeren zonder dat coördinatie tussen systemen nodig is. Het idee achter een UUID is dat twee verschillende programma's, die op twee verschillende machines draaien en niets van elkaar weten, UUID's kunnen genereren en er met vertrouwen van uit kunnen gaan dat deze nooit zullen botsen. Die eigenschap maakt het ontwerp van gedistribueerde systemen mogelijk: u kunt elke service lokaal identifiers laten aanmaken zonder een centrale teller, databases samenvoegen zonder rijen te hernummeren en identifiers vooraf op de client genereren voordat de server de aanvraag zelfs maar ziet. UUID's hebben vijf canonieke versies, gedefinieerd door RFC 4122: v1 (op tijd + MAC-adres gebaseerd, lekt het aanmaaktijdstip en de identiteit van de machine), v3 (MD5-hash van een naamruimte + naam), v4 (willekeurig, het meest voorkomend), v5 (SHA-1-hash van een naamruimte + naam). RFC 9562 voegde v6 toe (op tijd geordend, zoals v1 maar zonder het MAC-adres te lekken) en v7 (Unix timestamp + willekeurig, specifiek ontworpen voor primaire databasesleutels omdat deze chronologisch wordt geordend). Deze tool genereert UUID v4 via crypto.randomUUID(), die cryptografisch robuuste willekeur gebruikt van het onderliggende besturingssysteem van de browser, dezelfde bron als waaruit TLS-sleutels voortkomen. De uitvoer is byte voor byte identiek aan die van uuid.uuid4() van Python, crypto.randomUUID() van Node en google/uuid.NewRandom() van Go.

Veelvoorkomende toepassingen

  • Primaire databasesleutels – vervang automatisch oplopende integers wanneer je databases moet samenvoegen of ID's aan de clientzijde moet genereren.

  • Sessie-identifiers in cookies – lang genoeg dat het bruteforcen van een geldige sessie-ID rekenkundig onhaalbaar is.

  • Idempotentiesleutels voor API-verzoeken – herhaal het verzoek veilig; de server dedupliceert op UUID.

  • Identifiers voor bestandsuploads – benoem geüploade bestanden met een UUID om padbotsingen te voorkomen en oorspronkelijke bestandsnamen niet bloot te geven.

  • ID's voor gedistribueerde tracing – elk verzoek krijgt een UUID, die door de services wordt doorgegeven voor logcorrelatie.

  • Identifiers voor test-fixtures – voorspelbare willekeur voor testgegevens zonder ID's tussen testcases af te stemmen.

Veelgestelde vragen

Wat betekent v4?
Versie 4: gegenereerd uit 122 bits willekeur plus 6 vaste bits voor versie/variant. Andere versies: v1 is gebaseerd op timestamp + MAC (gebruik deze niet; het lekt de identiteit van de machine en het tijdstip), v3/v5 zijn deterministische hashes van een naamruimte + naam (handig voor stabiele afgeleide identifiers), v7 is willekeurig met een timestampvoorvoegsel (uitstekend voor databases omdat deze chronologisch wordt geordend). Voor de meeste gevallen is v4 de juiste standaardkeuze.
Hoe uniek zijn UUID's werkelijk?
UUID v4 heeft 122 effectieve bits willekeur: 5,3×10^36 mogelijke waarden. U zou 2,71 triljoen UUID's moeten genereren voordat u een kans van 50% op een botsing bereikt. Ter context: als u een miljard UUID's per seconde zou genereren, zou u 85 jaar nodig hebben om die drempel te bereiken. Praktische botsingen komen niet voor met een goede generator van willekeurige getallen.
Moet ik v4 of v7 gebruiken voor primaire databasesleutels?
v7 is beter voor databases. UUID v4 is willekeurig, wat betekent dat nieuwe rijen zich willekeurig over de B-tree-indexen verspreiden, wat indexopzwelling en trage invoegingen op grote schaal veroorzaakt. v7 plaatst de timestamp vooraan, waardoor nieuwe UUID's altijd na oudere worden geordend en de invoegpatronen sequentieel blijven. PostgreSQL, MySQL en SQL Server profiteren van v7. Als uw bibliotheek v7 nog niet ondersteunt, zijn ULID's een populair alternatief met dezelfde eigenschap.
Is het veilig om crypto.randomUUID() te gebruiken?
Ja. Het is gespecificeerd door de WHATWG en geïmplementeerd in alle moderne browsers via de cryptografische generator van willekeurige getallen van het besturingssysteem (dezelfde bron als waaruit TLS-sleutels voortkomen). De uitvoer is onvoorspelbaar en gelijkmatig verdeeld over de gehele UUID v4-ruimte.
Wat is het verschil tussen UUID en GUID?
Ze zijn functioneel identiek: GUID is de Microsoft-term voor hetzelfde concept. Het byteformaat verschilt in sommige Microsoft-API's (Guid.ToByteArray() van .NET gebruikt een gemengde byte-volgorde in de eerste drie velden), dus let op de byte-volgorde wanneer interoperabiliteit van belang is. Het canonieke tekenreeksformaat (8-4-4-4-12) is identiek.
Kan ik een UUID inkorten om in URL's te gebruiken?
Ja: codeer de 128 bits in Base62 of Base64 in plaats van het canonieke hexadecimale formaat. Base62 levert 22 tekens op; Base64 geeft 22 tekens met opvulling of 22 in de URL-veilige variant. Sommige bibliotheken gebruiken ook 'korte UUID'-formaten. De onderliggende bits veranderen niet; alleen de weergavecodering verschilt.
Waarom begint mijn UUID met dezelfde tekens als een andere?
Dat is toeval: UUID v4 is willekeurig. Met in totaal 36 hexadecimale tekens en slechts 22 willekeurige hexadecimale tekens (4 zijn gereserveerd voor versie/variant en 4 zijn koppeltekens) zijn enkele overeenkomende voorvoegsels onvermijdelijk wanneer u er veel genereert. De volledige UUID is uniek, ook al komen de voorvoegsels overeen.

Gerelateerde tools