Wat is UUID-decodering?
UUID-decodering is het proces van het analyseren van een UUID om informatie eruit te halen over:
- Version: Welke UUID-versie (1-8) op basis van 4 bits op positie 48-51
- Variant: Welke UUID-variant (meestal RFC 4122) op basis van bits 64-65
- Components: Het extraheren van tijdstempel, node-ID of andere gegevens op basis van versie
- Generatietijd: Voor op tijd gebaseerde UUID's (v1, v6, v7)
Example: 123e4567-e89b-12d3-a456-426614174000 is een Version 1 UUID met de tijdstempel 2228-06-25T20:01:28.545Z wanneer weergegeven met JavaScript milliseconde-nauwkeurigheid.
Overzicht van UUID-structuur
| Format | Description |
|---|---|
| 8-4-4-4-12 | 32 hex-cijfers gegroepeerd met koppeltekens |
| Versiebits | Bits 48-51 (13e cijfer) |
| Variantbits | Bits 64-65 (17e cijfer) |
Het versienummer verschijnt als het eerste hex-cijfer in de derde groep (bijv., 123e4567-e89b-12d3-a456-426614174000 voor versie 1).
Decoderen per UUID-versie
| Version | Wat kan worden gedecodeerd |
|---|---|
| UUID v1 |
|
| UUID v3/v5 |
|
| UUID v4 |
|
| UUID v6 |
|
| UUID v7 |
|
Tijdstempel-extractie uit UUID's
| UUID-type | Methode voor tijdsherleiding | Epoch |
|---|---|---|
| UUID v1 | Combineer bits 0-31, 32-47 en 48-59, herordening van tijdstempelcomponenten | 15 oktober 1582 |
| UUID v6 | Combineer bits 0-47 met bits 52-63; bits 48-51 zijn de versie en worden uitgesloten | 15 oktober 1582 |
| UUID v7 | Extraheer bits 0-47 (Unix-milliseconden) | 1 januari 1970 |
Regels voor UUID-validatie
- Formatcontrole: 8-4-4-4-12 hexadecimale cijfers met koppeltekens
- Versiecontrole: 13e karakter moet 1-8 zijn
- Variantcontrole: 17e teken moet 8, 9, A of B zijn (voor RFC 4122)
Reguliere expressie voor basis-UUID-validatie:
^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$UUID v7 tijdstempelvoorbeeld
017f22e2-79b0-7cc3-98c4-dc0c0c07398f is de RFC 9562 UUIDv7 testvector. De eerste 48 bits zijn Unix-milliseconden, die decoderen naar 2022-02-22T19:22:22.000Z, 1645557742000 milliseconden, of 1645557742 seconds.
Genereer een nieuwe UUID v7, of ga verder met de Unix-tijdstempelconverter. Deze links bevatten niet de door u ingevoerde UUID.
Praktische toepassingen
- Forensische analyse: Bepalen wanneer ID's zijn aangemaakt
- Debugging: Het traceren van systeemgedrag via ID-tijdstempels
- Auditing: Valideren van chronologische integriteit
- Formatcontroles: Het detecteren van misvormde ID's; een geldige UUID bewijst niet de authenticiteit
- Gegevensherstel: Het reconstrueren van temporele relaties
- Systeemmigraties: Begrijpen van details van legacy-UUID-implementaties
MAC-adresextractie (v1/v6)
Voor UUID v1 en v6 kunt u vaak de node-identificator (MAC-adres) extraheren als deze niet tijdens generatie is gerandomiseerd:
- Extraheer de laatste 12 hex-cijfers (48 bits) uit de UUID
- Formatteer met dubbele punten als XX:XX:XX:XX:XX:XX
- Controleer of het MAC-adres echt of willekeurig is door de multicast-bit te onderzoeken
Als de eerste byte bit 0x01 heeft ingesteld, is het waarschijnlijk een gerandomiseerde node-ID in plaats van een daadwerkelijk MAC-adres.
Veelgestelde vragen
Kan ik precies bepalen wanneer een UUID v4 is aangemaakt?
Nee. UUID v4 is puur willekeurig en bevat geen tijdstempelinformatie. De aanmaaktijd kan niet uit een UUID v4 worden afgeleid.
Hoe nauwkeurig zijn tijdstempels in op tijd gebaseerde UUID's?
UUID v1/v6 tijdstempels hebben een nauwkeurigheid van 100 nanoseconden. UUID v7 heeft milliseconde-nauwkeurigheid. De feitelijke systeemkloknauwkeurigheid kan echter variëren.
Kan ik tussen UUID-versies converteren?
Nee, u kunt niet rechtstreeks tussen versies converteren terwijl dezelfde identificatiewaarde behouden blijft. Verschillende versies hebben fundamenteel verschillende structuren.
Kan ik de computer identificeren die een UUID v1 heeft gegenereerd?
Als de node-ID niet gerandomiseerd was, kan een UUID v1 het MAC-adres van het genererende systeem bevatten. Veel moderne implementaties randomizen dit echter om privacyredenen.
Hoe kan ik zien of een UUID geldig is?
Controleer het formaat (8-4-4-4-12 hex-cijfers), verifieer dat het versiecijfer (13e karakter) 1-8 is, en bevestig de variantbits (17e karakter is 8, 9, A of B voor RFC 4122 UUID's).