Wat is een UUID? Een volledige uitleg van universeel unieke identificatiegegevens
Snel antwoord
Een UUID is een 128-bit identifier weergegeven als 36 tekens (32 hex-cijfers plus 4 streepjes). UUID's zijn praktisch uniek zonder coördinatie —het collision-probabiliteit is verwaarloosbaar. UUID v4 (random) is de meest voorkomende versie. Gebruik onze gratis UUID Generator om UUID's in je browser te maken.
Invoering
Een UUID (Universally Unique Identifier), ook GUID (Globally Unique Identifier) genoemd in Microsoft-terminologie, is een 128-bit identifier die praktisch gegarandeerd uniek is zonder centrale coördinatie. UUID's zijn gedefinieerd door RFC 4122 en worden veel gebruikt als database primary keys, request-ID's, session-tokens en identifiers in gedistribueerde systemen. De meest voorkomende versie is UUID v4, die willekeurige bits gebruikt.
Stap voor stap
-
Begrijp de structuur van UUID
Een UUID is 128 bits, weergegeven als 32 hexadecimale cijfers in 5 groepen: 8-4-4-4-12, gescheiden door koppeltekens (bijvoorbeeld 550e8400-e29b-41d4-a716-446655440000). Het 13e cijfer geeft de versie aan (4 voor v4) en het 17e cijfer geeft de variant aan.
-
Leer de UUID versies
v1: op tijd gebaseerd (tijdstempel + MAC-adres) - op tijd geordend maar lekt identiteit. v3: op naam gebaseerd met MD5 hashing. v4: willekeurig – meest voorkomend, geen privacyproblemen. v5: op naam gebaseerd met SHA-1-hashing. v6 en v7: tijdgeordend met verbeterde privacy ten opzichte van v1.
-
Begrijp de kans op botsingen
UUID v4 heeft 2^122 mogelijke waarden. De kans op een botsing tussen 103 biljoen UUID's is 50%. Voor praktisch gebruik (miljoenen ID's) is de kans op botsingen feitelijk nul: u kunt UUID's onafhankelijk genereren zonder coördinatie.
-
Gebruik UUID's op de juiste manier
Gebruik v4 voor bijna alle gebruiksscenario's (database-ID's, aanvraag-ID's, sessietokens). Gebruik v7 als u tijdgeordende ID's nodig hebt voor databaselocatie. Vermijd v1 in veiligheidsgevoelige contexten; het bevat een tijdstempel en MAC-adres.
Voorbeelden
UUID v4 (willekeurig)
Invoer: Gegenereerd met crypto.getRandomValues
Uitvoer: 550e8400-e29b-41d4-a716-446655440000
UUID v1 (tijdgebaseerd)
Invoer: Tijdstempel + MAC-adres
Uitvoer: a3bbf0ee-d6e4-11ed-a5b3-3c9703e8b4a1
Geen UUID
Invoer: All zeros
Uitvoer: 00000000-0000-0000-0000-000000000000
Veelvoorkomende problemen
- Het gebruik van Math.random() voor UUID's is cryptografisch niet veilig. Gebruik crypto.getRandomValues() of crypto.randomUUID() in browsers.
- UUID's opslaan als strings - een UUID string is 36 bytes; opgeslagen als een UUID type (16 bytes), is het efficiënter. Gebruik het oorspronkelijke type UUID in databases, indien beschikbaar.
- Gebruik van v1 in veiligheidsgevoelige contexten: v1 integreert een tijdstempel en een MAC-adres, waardoor informatie kan lekken over wanneer en waar deze zijn gegenereerd. Gebruik v4 voor anonimiteit.
- Ervan uitgaande dat UUID's werkelijk uniek zijn, zijn ze vrijwel uniek (de kans op botsingen is verwaarloosbaar), maar wiskundig niet gegarandeerd uniek.
Tips
- Gebruik UUID v4 voor bijna alle gebruiksscenario's: het is willekeurig, kent geen privacyproblemen en wordt ondersteund door alle moderne databases.
- Gebruik crypto.randomUUID() in moderne browsers voor een ingebouwde v4-generator zonder bibliotheek.
- Bewaar UUID's als UUID/GUID-type in databases (16 bytes) in plaats van strings (36 bytes) voor betere opslag- en indexprestaties.
- Gebruik onze UUID Generator om UUID's direct in uw browser te maken - geen aanmelding, volledig privé.