UUID v1 uitgelegd
UUID v1 is de op tijd gebaseerde versie die RFC 4122 oorspronkelijk definieerde. De waarde bestaat uit een gregoriaanse tijdstempel van 60 bits in stappen van 100 nanoseconden, een node-identificatie van 48 bits en een klokreeks.
De oorspronkelijke specificatie zette het MAC-adres van de machine in het nodeveld, waardoor hardwaregegevens zichtbaar werden. Deze pagina gebruikt daarom een random nodewaarde, wat RFC 4122 ook toestaat.
Hoe het werkt
- Stel in hoeveel UUID's je nodig hebt, van 1 tot 1000.
- Kies eventueel hoofdletters, koppeltekens en accolades.
- Druk op UUID genereren en kopieer of exporteer de reeks als .txt of .csv.
Waarvoor je het gebruikt
- Bestaande databases en interne systemen die alleen v1 accepteren.
- Diagnostische tools die het moment van genereren uit de waarde lezen.
- Tijdelijke identificaties in de aanloop naar een migratie van een v1-schema.
Structuur
De eerste 60 bits zijn een tijdstempel in stappen van 100 nanoseconden, daarna volgen 4 bits versienummer (1). Dan komen 12 bits klokreeks en 48 bits node-identificatie.
Waar UUID v1 past
| Optie | Wanneer gebruiken |
|---|---|
v1 | Het oudste op tijd gebaseerde formaat, bedoeld voor compatibiliteit |
v7 | Ook op tijd gebaseerd, maar moderner ontworpen en beter sorteerbaar |
v6 | Herschikt de velden van v1 zodat sorteren wel klopt |
Overzicht van alle UUID-versies
| Versie | Sorteerbaar | Herkomst van de bits | Waarvoor het past |
|---|---|---|---|
| v1 | Nee | Tijdstempel + MAC-adres | Bestaande systemen die v1 verwachten |
| v3 | Nee | MD5-hash van de naam | Deterministische ID's als MD5 verplicht is |
| v4 | Nee | 122 random bits | Vrijwel elke gewone unieke identificatie |
| v5 | Nee | SHA-1-hash van de naam | Als dezelfde naam altijd dezelfde ID moet geven |
| v6 | Ja | Herschikte tijdstempel | Als je zowel randomheid als sortering wilt |
| v7 | Ja | Unix-tijd in milliseconden | Primaire sleutels en gebeurtenis-ID's |
| v8 | Nee | Zelfgekozen bitindeling | Eigen formaten en experimenten |
Alle zeven versies zijn 128 bits en gebruiken dezelfde notatie 8-4-4-4-12. Het verschil zit alleen in wat elk bit voorstelt.
Codevoorbeelden
javascript
// Node 14.17+
import { v1 as uuidv1 } from 'uuid';
const id = uuidv1();
python
import uuid
id = str(uuid.uuid1())
java
// java.util.UUID maakt alleen v4, dus je hebt een bibliotheek nodig
csharp
// .NET heeft geen ingebouwde v1-generator
sql
-- Niet overdraagbaar, dus meestal in de applicatie gemaakt
Veelgestelde vragen
Waarom zou v1 je machine verraden?
Omdat de oorspronkelijke specificatie het MAC-adres in het nodeveld zette. Deze pagina gebruikt de random nodewaarde die RFC 4122 ook toestaat, dus je kunt het apparaat van de gebruiker niet uit de waarde afleiden.
Wat is het verschil tussen v1 en v6?
De bits zijn vrijwel hetzelfde, alleen de volgorde verschilt. v6 verplaatst de hoge bits van de tijdstempel naar voren, zodat alfabetisch sorteren overeenkomt met de tijd.
Moet ik v1 nog gebruiken?
Voor nieuwe systemen raden we v7 aan. Kies v1 alleen als je moet aansluiten op bestaande systemen of het moment van genereren direct uit de waarde wilt lezen.