UUID-generator
Inleiding
De Toollect UUID Generator is een browsergebaseerde tool die Universeel Unieke Identificaties (UUID's, ook bekend als GUID's) produceert in alle acht standaardversies — v1 tot en met v8. Of je nu willekeurige identificaties nodig hebt voor webformulieren, tijdsgeordende sleutels voor databaserecords, deterministische namespaced ID's voor gedistribueerde systemen of aangepaste UUID's voor legacy-integratie, deze tool dekt het volledige spectrum zonder dat software-installatie of server-side verwerking nodig is.
UUID's zijn een van de meest gebruikte identificatiestandaarden in software-engineering, overal toegepast van database-primaire sleutels en API-resource-identificaties tot gedistribueerde tracing en sessietokens. De Toollect UUID Generator brengt alle UUID-versies samen in één interface, zodat je de juiste variant voor jouw gebruikssituatie kunt kiezen en deze met één klik direct kunt genereren.
Alle generatie vindt volledig in je browser plaats met de Web Crypto API. Er worden geen gegevens via het netwerk verzonden, geen cookies geplaatst en geen identificaties gelogd. De tool werkt offline na het initiële laden van de pagina en op alle moderne browsers en apparaten.
Gebruikssituaties
Verschillende UUID-versies dienen verschillende architectuurbehoeften. De juiste versie kiezen hangt af van je vereisten voor ordening, determinisme, privacy en systeemcoördinatie.
Database-Primaire Sleutels
UUID's elimineren de noodzaak van een centrale volgorde bij het genereren van primaire sleutels in gedistribueerde database-instanties. UUID v4 is de eenvoudigste keuze, maar UUID v6 en v7 bieden tijdsgeordende sortering die B-tree-indexfragmentatie in databases zoals PostgreSQL en MySQL aanzienlijk vermindert. Voor systemen die zowel wereldwijde uniciteit als snelle schrijfprestaties nodig hebben, is v7 de moderne aanbevolen keuze.
Identificaties voor Gedistribueerde Systemen
Microservices en gedistribueerde systemen genereren vaak onafhankelijk identificaties op verschillende nodes. UUID v1 bevat een node-identificatie (afgeleid van MAC-adres) en kloksequentie, waardoor de ID's van elke genererende node inherent uniek zijn zonder coördinatie. UUID v4 en v7 zijn ook populair voor dit scenario vanwege hun eenvoud.
Deterministische Naamgebaseerde ID's
Wanneer dezelfde invoer altijd dezelfde UUID moet produceren — bijvoorbeeld het genereren van een stabiele identificatie uit een gebruikers-e-mail, een resource-URL of een namespace-gekwalificeerde naam — bieden UUID v3 (MD5-gebaseerd) en v5 (SHA-1-gebaseerd) determinisme. Dit is nuttig voor content-addressable opslag, entiteitsidentiteit in event sourcing en het migreren van legacy-gegevens zonder identificaties te wijzigen.
API-Resource-Identificaties
Het blootstellen van auto-incrementerende gehele getallen in API-URL's lekt informatie over resourcehoeveelheid en -ordening. UUID's bieden ondoorzichtige identificaties die niets onthullen over de interne werking van het systeem. UUID v4 is de meest gangbare keuze voor REST API-resourcepaden. De opties voor hoofdlettergebruik en geen koppeltekens maken het eenvoudig om UUID's aan te passen aan verschillende URL- en opmaakconventies.
Aangepaste en Legacy-Systemen
UUID v2 (DCE Security) voegt lokale gebruikers- en groepsidentificaties toe voor beveiligingscontexten op besturingssysteemniveau. UUID v8 maakt aangepaste veldindelingen mogelijk voor systemen die specifieke gegevensbits moeten inbedden terwijl het standaard UUID-formaat behouden blijft. Deze versies zijn niche maar waardevol voor gespecialiseerde integratiescenario's.
Hoe Het Werkt
De UUID Generator werkt volledig client-side. Wanneer je een versie selecteert en op genereren klikt, roept de tool het juiste algoritme aan met JavaScript en de Web Crypto API van de browser.
Voor willekeurige UUID's (v4) roept de tool crypto.getRandomValues() aan om cryptografisch veilige willekeurige bytes te produceren en formatteert deze vervolgens in de standaard UUID-indeling met de juiste versie- en variantbits. Voor tijdgebaseerde UUID's (v1, v2, v6, v7) leest de tool de huidige tijdstempel van de systeemklok en combineert deze met willekeurige kloksequentie- en nodebytes. Voor naamgebaseerde UUID's (v3, v5) hasht de tool een namespace en naam samen met MD5 of SHA-1 via de SubtleCrypto API en haalt vervolgens 128 bits uit in het standaard UUID-formaat.
UUID-Indeling
Een UUID is een 128-bit waarde weergegeven als een tekenreeks van 36 tekens in het formaat xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, waarbij elke x een hexadecimaal cijfer is. De 128 bits zijn gestructureerd in velden:
| Veld | Bits | Doel |
|---|---|---|
time_low |
32 | Lage 32 bits van de tijdstempel (v1, v2, v6) |
time_mid |
16 | Middelste 16 bits van de tijdstempel |
time_hi_and_version |
16 | Hoge 12 bits van tijdstempel + 4 bits versie |
clock_seq_hi_and_reserved |
8 | Hoge 6 bits van kloksequentie + 2 variantbits |
clock_seq_low |
8 | Lage 8 bits van kloksequentie |
node |
48 | Node-identificatie (MAC-adres of willekeurig) |
De versienibble (bits 48-51, de meest significante nibble van de derde groep) identificeert welk algoritme de UUID heeft geproduceerd: 0001 (v1), 0010 (v2), 0011 (v3), 0100 (v4), 0101 (v5), 0110 (v6), 0111 (v7), 1000 (v8). Dit is de 4 die je ziet in een standaard UUID v4 zoals 550e8400-e29b-41d4-a716-446655440000.
De variantbits (bits 64-65, de twee meest significante bits van de eerste byte van de vierde groep) geven de UUID-variant aan. RFC 9562 specificeert variant 10xxxxxx (bits 64-65 = 10), wat betekent dat het eerste teken van de vierde groep altijd 8, 9, a of b is.
Voorbeeld van Binaire Indeling
De 128-bit structuur van een UUID is het beste visueel te begrijpen. Neem een concrete UUID v4 550e8400-e29b-41d4-a716-446655440000, hier is hoe de bits naar elke groep en elk veld worden toegewezen:
Groep: 1 2 3 4 5
Hex: 550e8400 e29b 41d4 a716 446655440000
Binair: [32 bits] [16 bits] [16 bits] [16 bits] [48 bits]
Versienibble (groep 3, hoge nibble):
550e8400-e29b-4 1d4-a716-446655440000
^
versie = 0100 (v4)
Variantbits (groep 4, hoge byte):
550e8400-e29b-41d4- a 716-446655440000
^
variant = 10xxxxxx
Volledige binaire uitsplitsing van groepen 3-4:
groep 3 (16 bits) begin groep 4 (8 bits)
0100 0001 1101 0100 1010 0111
└─┘ └─┘
ver=0100 (v4) variant | clock_seq_hi
10
Voor UUID v7 coderen de eerste 48 bits de Unix-millisecondentijdstempel:
018f3a6e-1a2b- 7 bcd-8a1b-2c3d4e5f6789
^
versie = 0111 (v7)
groepen 1-2: 48-bit Unix ms-tijdstempel
0000 0001 1000 1111 0011 1010 0110 1110 0001 1010 0010 1011
hoge nibble groep 3:
0111 = versie 7
De hoge byte van groep 4 (a in het bovenstaande voorbeeld) bevat de variantbits. Aangezien de variant 10 is, valt deze byte altijd in het bereik 1000 0000 (0x80) tot 1011 1111 (0xBF), wat in hex overeenkomt met 8, 9, a of b als het eerste teken van de vierde groep.
UUID-Versies Uitgelegd
De volgende tabel geeft een overzicht van de acht standaard UUID-versies in één oogopslag:
| Versie | Algoritme | Primaire Invoer | Deterministisch | Sorteerbaar | Typisch Gebruik |
|---|---|---|---|---|---|
| v1 | Tijdgebaseerd + Node | Tijdstempel, kloksequentie, MAC | Nee | Ja (tijd) | Gedistribueerde systemen, legacy tijdsgebaseerde ID's |
| v2 | DCE-beveiliging | Tijdstempel, POSIX UID/GID | Nee | Ja (tijd) | DCE-omgevingsidentificaties (niche) |
| v3 | MD5-hash | Namespace + naam | Ja | Nee | Naamgebaseerde ID's waar MD5 volstaat |
| v4 | Willekeurig | 122 willekeurige bits | Nee | Nee | Algemene identificaties |
| v5 | SHA-1-hash | Namespace + naam | Ja | Nee | Naamgebaseerde identificaties (aanbevolen boven v3) |
| v6 | Geherrangschikt tijdgebaseerd | Tijdstempel (tijd-hoog eerst) | Nee | Ja (tijd) | Tijdsgeordende databasesleutels |
| v7 | Unix-tijdstempel + willekeurig | Unix ms-tijdstempel + willekeurig | Nee | Ja (ms) | Moderne tijdsgeordende identificaties |
| v8 | Aangepast | Door gebruiker gedefinieerde velden | Afhankelijk | Afhankelijk | Aangepaste experimentele of propriëtaire formaten |
UUID v1 — Tijdgebaseerd
UUID v1 combineert een 60-bit tijdstempel (100-nanoseconden intervallen sinds 15 oktober 1582), een 14-bit kloksequentie (voor detectie van klokterugdraaiing) en een 48-bit node-identificatie (traditioneel afgeleid van het MAC-adres). Dit geeft elke genererende node een unieke identificatieruimte zonder coördinatie.
De tijdstempel is verdeeld over de lage, middelste en hoge delen in de eerste drie groepen van de UUID. Deze niet-opeenvolgende indeling betekent dat UUID v1's wel tijdsgebaseerd sorteerbaar zijn, maar niet in een database-vriendelijke monotone volgorde — v6 en v7 lossen dit op.
UUID v2 — DCE-beveiliging
UUID v2 breidt de tijdstempel- en kloksequentie-indeling van v1 uit, maar vervangt het 48-bit node-veld door een 32-bit POSIX-gebruikers-ID (UID) of groeps-ID (GID) en een 6-bit lokaal domein-identificatie. De resterende 10 bits van het node-veld en 2 bits van de kloksequentie worden hergebruikt voor het lokale domein en de structuur ervan:
| Veld | Bits | Bron |
|---|---|---|
| Tijdstempel | 60 | Zelfde tijdperk als v1 (100 ns ticks sinds 1582-10-15) |
| Kloksequentie | 6 | Standaard, verminderd van 14 bits |
| Lokaal domein | 6 | Identificeert UID-domein (POSIX, DCE, enz.) |
| Lokale identificatie | 32 | POSIX UID- of GID-waarde |
UUID v2 is gespecificeerd in de DCE 1.1: Remote Procedure Call-standaard, niet in de kern-UUID-specificatie RFC 9562. Het wordt zelden gebruikt buiten legacy DCE-omgevingen en de meeste moderne UUID-generators laten het weg of voegen het alleen voor volledigheid toe. Als je een nieuw systeem bouwt, gebruik dan v4, v7 of v5.
UUID v3 — MD5 Naamgebaseerd
UUID v3 genereert een deterministische UUID uit een namespace-UUID en een naamreeks. Het proces voegt de namespace- en naambytes samen, berekent een MD5-hash en neemt de eerste 128 bits als UUID. Dezelfde namespace en naam produceren altijd dezelfde v3-UUID, waardoor het geschikt is voor content-adressering en stabiele identificaties.
Zie de sectie UUID v3 vs v5 hieronder voor een vergelijking van de twee naamgebaseerde versies.
UUID v4 — Willekeurig
UUID v4 gebruikt 122 willekeurig gegenereerde bits plus 6 vaste bits (4 voor de versienibble, 2 voor de variant). Dit is de meest gebruikte UUID-versie, direct ondersteund door de meeste standaardbibliotheken van programmeertalen. De Toollect UUID Generator gebruikt crypto.getRandomValues() om cryptografisch veilige willekeur te garanderen, waardoor de uitvoer geschikt is voor beveiligingsgevoelige contexten zoals sessietokens.
De kans op een botsing bij één miljard gegenereerde v4-UUID's is ongeveer 1 op 5,3 × 10²¹ — verwaarloosbaar voor alle praktische doeleinden.
UUID v5 — SHA-1 Naamgebaseerd
UUID v5 is de tegenhanger van v3 en gebruikt SHA-1 in plaats van MD5 voor de onderliggende hash. Het produceert dezelfde determinismegaranties (zelfde namespace + naam = zelfde UUID) met een beter bestand tegen botsingen hashing-algoritme. Voor nieuwe systemen die naamgebaseerde UUID's nodig hebben, beveelt RFC 9562 v5 aan boven v3.
Zie de sectie UUID v3 vs v5 hieronder voor de gedetailleerde vergelijking.
UUID v6 — Geherrangschikt Tijdgebaseerd
UUID v6 herstructureert de v1-tijdstempel om de meest significante tijdbits als eerste te plaatsen. Dit maakt UUID v6's monotoon stijgend bij lexicografische sortering, in tegenstelling tot v1 waar de tijdstempel is verdeeld over niet-aangrenzende velden. UUID v6 is een moderne vervanging voor v1 in omgevingen waar tijdsgeordende database-indexen of gesorteerde opslag belangrijk zijn.
UUID v7 — Unix Tijdstempel + Willekeurig
UUID v7 gebruikt een 48-bit Unix-millisecondentijdstempel gevolgd door 74 willekeurige bits. De tijdstempel bezet de meest significante bits, waardoor UUID v7's sorteerbaar zijn op aanmaaktijd — ideaal voor database-primaire sleutels waar B-tree-indexprestaties een aandachtspunt zijn. UUID v7 is eenvoudiger dan v1 of v6 omdat het geen MAC-adressen, kloksequenties of 100-ns tijdperkconversies vereist.
Voor nieuwe systemen die tijdsgeordende UUID's nodig hebben, is v7 over het algemeen de beste keuze: het biedt sortering met millisecondeprecisie, brede willekeur en eenvoudige implementatie.
UUID v8 — Aangepast
UUID v8 reserveert de versie-8 identificatieruimte voor experimentele of propriëtaire UUID-formaten. De enige vaste bits zijn de 4-bit versienibble (1000) in bits 48-51 en de 2-bit variant (10) in bits 64-65 — de resterende 122 bits zijn vrij voor elke aangepaste veldindeling.
| Veld | Bits | Beperking |
|---|---|---|
| Aangepaste inhoud | 48 | Bits 0-47 (groepen 1-2), vrije vorm |
| Versie | 4 | Vast op 1000 |
| Aangepaste inhoud | 12 | Bits 52-63 (einde groep 3), vrije vorm |
| Variant | 2 | Vast op 10 |
| Aangepaste inhoud | 62 | Bits 66-127 (groepen 4-5), vrije vorm |
Veelvoorkomende toepassingen van UUID v8 zijn het inbedden van een bedrijfsspecifiek voorvoegsel, het combineren van een ingekorte tijdstempel met een volgordeteller of het coderen van een legacy-identificatie in UUID-formaat met behoud van standaardformaatcompatibiliteit. Een systeem zou bijvoorbeeld de eerste 32 bits kunnen toewijzen als een tenant-ID, de volgende 32 bits als een millisecondentijdstempel en de resterende 64 bits als een willekeurig achtervoegsel — allemaal in een formaat dat elke standaard UUID-parser kan lezen zonder aanpassingen.
Het v8-formaat is niet geregistreerd bij IANA en heeft geen interoperabiliteitsgaranties tussen systemen. Het is een privégebruiksruimte voor gevallen waarin standaard UUID-versies niet passen in de vereiste gegevensindeling.
UUID v3 vs v5
Zowel UUID v3 als v5 genereren deterministische identificaties uit een namespace-UUID en een naam, maar ze verschillen in hun hashing-algoritme:
| Aspect | UUID v3 | UUID v5 |
|---|---|---|
| Hash-algoritme | MD5 (128-bit) | SHA-1 (160-bit, ingekort tot 128) |
| Botsingsweerstand | Lager — MD5 wordt als cryptografisch gebroken beschouwd | Hoger — geen praktische botsingsaanvallen |
| Prestaties | Iets sneller (MD5 vs SHA-1) | Iets langzamer |
| Standaard aanbeveling | Alleen voor v3 achterwaartse compatibiliteit | RFC 9562 beveelt v5 aan voor nieuwe systemen |
| Interoperabiliteit | Vereist als bestaand systeem v3 gebruikt | Vereist als bestaand systeem v5 gebruikt |
De Toollect UUID Generator bevat vier vooraf gedefinieerde standaard namespaces gedefinieerd door RFC 9562: DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8), URL (6ba7b811-9dad-11d1-80b4-00c04fd430c8), OID (6ba7b812-9dad-11d1-80b4-00c04fd430c8) en X.500 (6ba7b814-9dad-11d1-80b4-00c04fd430c8). Je kunt ook een aangepaste namespace in standaard UUID-formaat opgeven voor gebruik met niet-standaard namespaces.
Gebruik
Het gebruik van de Toollect UUID Generator vereist geen installatie of registratie. De interface is verdeeld in twee panelen — één voor UUID v1/v2/v4/v6/v7/v8 (directe generatie) en één voor UUID v3/v5 (naamgebaseerde generatie).
Blok 1 — Standaard UUID's (v1, v2, v4, v6, v7, v8)
- Selecteer de UUID-versie uit het keuzemenu. De standaard is v4.
- Klik op Genereren of druk op Enter. Er verschijnt direct een nieuwe UUID in het uitvoerveld.
- Schakel opmaakopties in of uit indien nodig:
- Hoofdletters: Zet de uitvoer om in hoofdletter hexadecimale cijfers.
- Geen Koppeltekens: Verwijdert de koppeltekens, wat een compacte tekenreeks van 32 tekens oplevert.
- Kopieer het resultaat door op de knop Kopiëren naast het uitvoerveld te klikken.
Het wijzigen van het versiekeuzemenu activeert automatische regeneratie, dus overschakelen van v4 naar v7 produceert onmiddellijk een nieuwe identificatie.
Blok 2 — Naamgebaseerde UUID's (v3, v5)
- Selecteer v3 of v5 uit het versiekeuzemenu in het naamgebaseerde paneel.
- Kies een namespace door een van de vooraf gedefinieerde opties (DNS, URL, OID, X.500) of Aangepast te selecteren.
- Als je een aangepaste namespace gebruikt, voer dan een geldige UUID in het tekstveld in. De tool valideert het formaat en geeft een foutmelding als de UUID ongeldig is.
- Voer de naam in in het naam-invoerveld. De UUID wordt automatisch opnieuw gegenereerd terwijl je typt.
- Schakel hoofdletter- en geen-koppeltekenopmaak in of uit en Kopieer het resultaat zoals in Blok 1.
Het naamgebaseerde paneel genereert UUID's bij elke invoerwijziging — er is geen aparte genereerknop voor dit paneel.
Handleiding
Deze handleiding behandelt drie veelvoorkomende scenario's van het openen van de tool tot het kopiëren van de uiteindelijke UUID.
Scenario 1: Genereer een UUID v4 voor een Webformulier
- Open de tool in je browser. De interface van de UUID Generator toont twee panelen.
- Zorg in Blok 1 dat het versiekeuzemenu is ingesteld op v4 (de standaard).
- Klik op Genereren. Er verschijnt een UUID v4, bijvoorbeeld
550e8400-e29b-41d4-a716-446655440000. - Klik op Kopiëren om de UUID naar je klembord te kopiëren en plak deze vervolgens in je webformulier of API-verzoek.
- Schakel Hoofdletters in en klik opnieuw op Genereren om
550E8400-E29B-41D4-A716-446655440000te produceren. - Schakel Geen Koppeltekens in om
550e8400e29b41d4a716446655440000te produceren voor compacte opslag of URL-parameters.
Scenario 2: Genereer een Tijdsgeordende UUID v7 voor een Database-Primaire Sleutel
Stel dat je een tabel ontwerpt in PostgreSQL die wereldwijd unieke primaire sleutels nodig heeft zonder een centrale volgorde, maar je wilt ook goede schrijfprestaties.
- Selecteer v7 uit het versiekeuzemenu van Blok 1. Het uitvoerveld toont onmiddellijk een nieuwe v7-UUID, zoals
018f3a6e-1a2b-7bcd-8a1b-2c3d4e5f6789. - Let op de eerste tekens — UUID v7 begint met een Unix-millisecondentijdstempel, dus opeenvolgende generaties zullen toenemende waarden in de eerste groepen vertonen.
- Genereer meerdere UUID's snel achter elkaar en observeer dat de waarden monotoon zijn: elke nieuwe UUID begint met een groter of gelijk voorvoegsel dan de vorige.
- Kopieer de identificatie voor gebruik in je
INSERT-instructie:INSERT INTO users (id, name) VALUES ('018f3a6e-1a2b-7bcd-8a1b-2c3d4e5f6789', 'Alice');
Scenario 3: Genereer een Deterministische UUID v5 uit een Resource-URL
Stel je hebt een contentmanagementsysteem waar elk artikel wordt geïdentificeerd door zijn URL en je hebt een stabiele UUID nodig die niet verandert tussen implementaties.
- Stel in Blok 2 de versie in op v5.
- Selecteer de URL-namespace uit de namespace-radioknoppen. Dit gebruikt
6ba7b811-9dad-11d1-80b4-00c04fd430c8, de standaard namespace voor URL-gebaseerde UUID's. - Voer de artikel-URL in in het Naam-veld, bijvoorbeeld
https://example.com/articles/uuid-guide. - De UUID verschijnt automatisch — elke keer dat je dezelfde URL met de URL-namespace invoert, krijg je dezelfde UUID.
- Test determinisme: Selecteer in plaats daarvan de DNS-namespace en observeer dat de UUID verandert. Schakel terug naar URL — de oorspronkelijke UUID verschijnt opnieuw.
Professionele tips
Beheers deze geavanceerde technieken om het meeste uit de Toollect UUID Generator te halen:
-
Gebruik v7 in plaats van v1 voor database-primaire sleutels: UUID v7 sorteert op millisecondentijdstempel vanaf de meest significante bits, wat je B-tree-vriendelijke monotone ordening geeft zonder de complexiteit van MAC-adressen of kloksequentiebeheer. Begin voor nieuwe projecten die tijdsgeordende UUID's nodig hebben met v7.
-
Geef de voorkeur aan v5 boven v3 voor naamgebaseerde UUID's: Tenzij je moet samenwerken met een systeem dat v3 gebruikt, gebruik dan altijd UUID v5. SHA-1 biedt meer botsingsmarge dan MD5 met een verwaarloosbaar prestatieverschil. De tool standaardiseert op v5 in het naamgebaseerde paneel om deze reden.
-
Verwijder koppeltekens voor URL-parameters: Schakel Geen Koppeltekens in bij gebruik van UUID's in URL-paden of queryparameters. Zonder koppeltekens wordt een UUID een hexadecimale tekenreeks van 32 tekens die geen URL-codering vereist en visueel schoner is in routesegmenten.
-
Gebruik vooraf gedefinieerde namespaces voor consistente cross-systeem identificaties: De DNS-, URL-, OID- en X.500-namespaces zijn gestandaardiseerd in RFC 9562. Het gebruik ervan garandeert dat elke RFC-conforme UUID-generator dezelfde v3- of v5-UUID produceert voor dezelfde naam. Dit is essentieel voor cross-systeem identificatieovereenstemming.
-
Aangepaste namespace met een vaste v4-UUID: Wanneer je je eigen namespace maakt voor v3/v5-UUID's, genereer dan eenmalig een UUID v4, sla deze op in je configuratie en hergebruik deze. Dit garandeert dat alle identificaties binnen je aangepaste namespace verschillen van elke andere namespace.
-
Genereer in batch door meerdere keren te klikken: Voor kleine hoeveelheden produceert snel klikken op Genereren elke keer verschillende UUID's. Voor grootschalige generatie gebruik je de commandoregel of programmatische methode hieronder beschreven.
Veelvoorkomende Misvattingen over UUID's
Verschillende wijdverbreide opvattingen over UUID's zijn onnauwkeurig of misleidend. Inzicht in de nuances helpt je betere architectuurbeslissingen te nemen.
"UUID's zijn 100% gegarandeerd uniek." Geen enkel identificatiesysteem biedt absolute garanties, maar UUID's bieden astronomisch hoge botsingsweerstand bij correct gebruik. Voor UUID v4 is de kans op ten minste één botsing bij één miljard gegenereerde ID's ongeveer 1 op 10¹⁴. Voor tijdgebaseerde versies (v1, v6, v7) vereisen botsingen tussen verschillende nodes gelijktijdige klokreset op meerdere machines. Het praktische botsingspercentage bij alle correct geïmplementeerde UUID's is effectief nul.
"UUID v4 is altijd de beste keuze." UUID v4 is het meest algemeen en is prima voor de meeste toepassingen, maar het is niet optimaal voor alle scenario's. Voor database-primaire sleutels veroorzaakt de willekeurige verdeling van v4 indexpaginaspitsingen en schrijfversterking in B-tree-indexen. UUID v7 biedt tijdsgeordende sortering die indexen efficiënter onderhoudt. Voor deterministische identificaties die reproduceerbaar moeten zijn uit een naam, is v3 of v5 de enige juiste keuze.
"UUID's zijn volledig willekeurig." Alleen UUID v4 is volledig willekeurig (122 bits entropie). UUID v1, v2, v6 en v7 bevatten tijdstempels, waardoor ze gedeeltelijk voorspelbaar zijn — informatie die via de identificatie kan worden gelekt. UUID v3 en v5 zijn deterministisch voor een bepaalde invoer. Als onvoorspelbaarheid een vereiste is (beveiligingstokens, sessie-identificaties), gebruik dan v4 met de Web Crypto API.
"Alle UUID's hebben hetzelfde formaat." Alle RFC 9562 UUID's delen het 36-tekens 8-4-4-4-12 hex-formaat, maar de interne structuur verschilt radicaal tussen versies. Een UUID v1 bevat MAC-adres- en tijdstempelbits; UUID v4 is pure willekeur; UUID v7 combineert een tijdstempel met willekeurige bits. Je kunt de versie identificeren aan het 13e teken (4 = v4, 7 = v7, enz.) en de variant aan het 17e teken (8, 9, a of b).
"UUID's vertragen databaseprestaties." Dit was gedeeltelijk waar met oudere databaseversies en UUID v4 opgeslagen als ASCII-tekenreeksen. Moderne databases (PostgreSQL met uuid-type, MySQL 8+ met UUID_TO_BIN, SQL Server) slaan UUID's op als 16-byte binaire waarden met native indexondersteuning. UUID v7 beperkt indexfragmentatie verder door tijdsgeordende generatie. Het prestatieverschil in vergelijking met auto-incrementerende gehele getallen is verwaarloosbaar voor de meeste workloads.
Alternatieven
Er bestaan verschillende alternatieven voor de Toollect UUID Generator, elk geschikt voor verschillende workflows.
| Tool / Methode | Het Beste Voor | Beperkingen |
|---|---|---|
| Toollect UUID Generator | Browsergebaseerde generatie, alle v1-v8 versies, geen installatie, privacy-first | Vereist internet voor initieel laden pagina, niet scriptbaar |
Unix uuidgen-opdracht |
Terminalgebaseerde batchgeneratie, scripting, pipeline-integratie | Meestal alleen v1 en v4; varieert per platformimplementatie |
| ULID | 26-teken base32 sorteerbare ID's, URL-veilig, hoofdletterongevoelig | Geen versie/variantbits; niet UUID-compatibel; beperkt tot 80 bits willekeur |
| NanoID | Korte URL-veilige ID's (standaard 21 tekens), configureerbaar alfabet en lengte | Geen UUID; geen standaard opmaak of versionering; lengte varieert per configuratie |
| Snowflake (Twitter-stijl) | 64-bit tijdsgesorteerde ID's, zeer compact, hoge doorvoer in gedistribueerde systemen | Vereist worker-ID-coördinatie; geen UUID-formaat; platformspecifieke implementaties |
| Online UUID-generators (bijv. uuidgenerator.net) | Snelle enkele UUID-generatie offline | Beperkt tot een of twee versies; vaak geen crypto-grade willekeur; kunnen gegevens naar server sturen |
PostgreSQL gen_random_uuid() |
Database-side generatie bij INSERT-tijd | Alleen PostgreSQL; meestal alleen v4; geen v7 of naamgebaseerde versies zonder extensies |
Python uuid-module |
Programmatische generatie in Python-toepassingen | Vereist Python-runtime; niet browsergebaseerd |
Node.js crypto.randomUUID() |
Server-side Node.js-generatie | Alleen Node.js; mist tijdgebaseerde en naamgebaseerde versies |
Web Crypto API (crypto.randomUUID) |
Browser-native v4-generatie met zero dependencies | Ondersteunt alleen v4; geen opmaakopties of naamgebaseerde UUID's |
Voor de meeste gebruikers die directe, privé, multi-versie UUID-generatie willen zonder de browser te verlaten, biedt de Toollect UUID Generator de meest uitgebreide functieset.
Gegevensprivacy
De Toollect UUID Generator verwerkt elke byte van je gegevens volledig in je browser. Geen gegevens die je invoert — namen, namespaces of gegenereerde identificaties — worden verzonden naar servers, opgeslagen in databases of gelogd in enig systeem.
Alle generatie gebruikt JavaScript's ingebouwde Web Crypto API (crypto.getRandomValues, crypto.randomUUID, crypto.subtle.digest). De toolpagina bevat geen analytics-scripts, trackingpixels, cookies of third-party embeds. Er worden geen localStorage- of sessionStorage-vermeldingen gemaakt of gelezen.
Na het initiële laden van de pagina werkt de UUID Generator volledig offline — genereer identificaties zelfs in vliegtuigmodus met zero netwerkactiviteit. Je kunt dit verifiëren door het tabblad Netwerk in de ontwikkelaarstools van je browser te inspecteren of door volledig de verbinding met internet te verbreken.
Probleemoplossing
| Probleem | Waarschijnlijke Oorzaak | Oplossing |
|---|---|---|
| UUID v4-uitvoer herhaalt zich tussen generaties | crypto.getRandomValues() is mogelijk nagemaakt of niet beschikbaar in testomgevingen |
In productiebrowsers retourneert crypto.getRandomValues() altijd verse entropie. Test door tien UUID's na elkaar te genereren — ze moeten allemaal verschillen. |
| Naamgebaseerde UUID (v3/v5) toont geen uitvoer | Naamveld is leeg of aangepaste namespace is ongeldig | Zorg dat het Naamveld tekst bevat. Als je een aangepaste namespace gebruikt, controleer dan of het een geldige UUID is in standaardformaat (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). |
| Validatie aangepaste namespace mislukt | UUID-formaat is onjuist — ontbrekende koppeltekens, verkeerde lengte of ongeldige hex-tekens | Voer de namespace in als een volledige 36-tekens UUID inclusief koppeltekens. De tool valideert het formaat voordat wordt gegenereerd. |
| Kopieerknop werkt niet | Browser-klembord-API vereist veilige context of gebruikersgebaar | Zorg dat de pagina wordt geserveerd via HTTPS. De Kopieerknop gebruikt navigator.clipboard.writeText(), dat werkt in alle moderne browsers op HTTPS-pagina's. |
| UUID v1 toont onverwachte waarden | Tijdstempel of kloksequentie kan zijn teruggelopen | UUID v1 gebruikt 100-ns ticks vanaf oktober 1582. De klokcyclus in 2026 valt ruim binnen het 60-bit bereik (~292 jaar). Kloksequenties worden vanzelf gereset als de systeemtijd achteruit gaat. |
Browser ondersteunt crypto.randomUUID niet |
Oudere browserversie | De tool valt intern terug op crypto.getRandomValues(). Ondersteund in Chrome 80+, Firefox 75+, Safari 13+, Edge 80+. |
| UUID v7-waarden zijn niet strikt stijgend | Twee generaties binnen dezelfde milliseconde produceren hetzelfde tijdstempelvoorvoegsel | UUID v7 gebruikt millisecondeprecisie. Binnen dezelfde milliseconde delen meerdere generaties dezelfde tijdstempel; het willekeurige achtervoegsel verandert elke keer. Dit is ontworpen en heeft geen invloed op database-indexordening. |
Technische Specificaties
De Toollect UUID Generator is ontworpen voor correctheid, prestaties en cross-browser-compatibiliteit.
Normconformiteit
| Aspect | Specificatie |
|---|---|
| RFC | RFC 9562 (vervangt RFC 4122) |
| UUID-formaat | 128-bit, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx |
| Variant | RFC 9562-variant (10xxxxxx) |
| Tekengeval | Standaard kleine letters, hoofdletter schakelbaar |
| Koppeltekens | Standaard inbegrepen, verwijderbaar met geen-koppelteken-schakelaar |
Algoritmedetails per Versie
| Versie | Bron van Entropie | Generatietijd |
|---|---|---|
| v1 | performance.now() voor tijdstempel, crypto.getRandomValues() voor kloksequentie en node |
< 1 ms |
| v2 | Zelfde als v1 met POSIX UID/GID (lokaal), node-veld aangepast | < 1 ms |
| v3 | MD5 via crypto.subtle.digest() |
~2-5 ms (async) |
| v4 | crypto.getRandomValues() |
< 1 ms |
| v5 | SHA-1 via crypto.subtle.digest() |
~2-5 ms (async) |
| v6 | Zelfde tijdstempel als v1 maar geherrangschikt (tijd-hoog eerst) | < 1 ms |
| v7 | Date.now() voor tijdstempel, crypto.getRandomValues() voor willekeurig achtervoegsel |
< 1 ms |
| v8 | crypto.getRandomValues() voor willekeurige bits |
< 1 ms |
Browsercompatibiliteit
| Browser | Minimale Versie | Status |
|---|---|---|
| Google Chrome | 80+ | Volledige ondersteuning |
| Mozilla Firefox | 75+ | Volledige ondersteuning |
| Apple Safari | 13+ | Volledige ondersteuning |
| Microsoft Edge | 80+ | Volledige ondersteuning |
| Samsung Internet | 13+ | Volledige ondersteuning |
| Opera | 67+ | Volledige ondersteuning |
Privacy en Beveiliging
- Nul gegevensverzending: alle generatie vindt plaats in het browsergeheugen
- Geen cookies, localStorage of sessionStorage gebruikt
- Geen analytics- of tracking-scripts op de toolpagina
- Volledig functioneel in offline modus na initieel laden pagina
- Geen registratie, login of API-sleutels vereist
- Cryptografisch veilige willekeur via Web Crypto API
Functies
- Genereer alle UUID-versies v1 tot en met v8, inclusief tijdgebaseerd (v1, v6, v7), willekeurig (v4), naamgebaseerd (v3, v5), DCE-beveiliging (v2) en aangepast (v8)
- Cryptografisch veilige willekeurige generatie met de Web Crypto API zonder netwerkverzending
- Schakel hoofdletteruitvoer om en verwijder koppeltekens voor compacte of weergaveklare UUID's
- Naamgebaseerde UUID-generatie met ingebouwde namespaces (DNS, URL, OID, X.500) en ondersteuning voor aangepaste namespace met validatie
- 100% client-side verwerking — geen gegevens geüpload naar servers, geen registratie of installatie vereist
- Generatie en kopiëren met één klik met directe resultaten op alle moderne browsers en apparaten