Wat is UUID-decodering?
UUID-decodering is het proces van het analyseren van een UUID om informatie te extraheren over:
- Version: Welke UUID-versie (1-8) gebaseerd op 4 bits op positie 48-51
- Variant: Welke UUID-variant (meestal RFC 4122) gebaseerd op bits 64-65
- Components: Extractie van tijdstempel, node-ID of andere gegevens op basis van versie
- Generatietijd: Voor tijdgebaseerde UUID's (v1, v6, v7)
Example: 123e4567-e89b-12d3-a456-426614174000
is een versie 1 UUID gemaakt op 2018-10-03 09:45:32 UTC.
Overzicht UUID-structuur
Format | Description |
---|---|
8-4-4-4-12 | 32 hexadecimale cijfers gegroepeerd met koppeltekens |
Versiebits | Bits 48-51 (13e teken) |
Variantbits | Bits 64-65 (17e cijfer) |
Het versienummer verschijnt als het eerste hexadecimale cijfer in de derde groep (bijv. 123e4567-e89b-12d3-a456-426614174000
voor versie 1).
Decodering op basis van UUID-versie
Version | Wat kan worden gedecodeerd |
---|---|
UUID v1 |
|
UUID v3/v5 |
|
UUID v4 |
|
UUID v6 |
|
UUID v7 |
|
ULID |
|
Tijdstempel-extractie uit UUID's
UUID-type | Tijdextractiemethode | Epoch |
---|---|---|
UUID v1 | Combineer bits 0-31, 32-47 en 48-59, herschik tijdstempelcomponenten | 15 oktober 1582 |
UUID v6 | Extraheer bits 0-59 (al in de juiste volgorde) | 15 oktober 1582 |
UUID v7 | Extraheer bits 0-47 (Unix milliseconden) | 1 januari 1970 |
ULID | Decodeer de eerste 10 Base32-tekens om 48-bit Unix milliseconden te verkrijgen | 1 januari 1970 |
UUID-validatieregels
- Formaatcontrole: 8-4-4-4-12 hexadecimale cijfers met koppeltekens
- Versiecontrole: 13e teken 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$
Praktische toepassingen
- Forensische analyse: Bepalen wanneer ID's zijn gemaakt
- Debugging: Traceren van systeemgedrag via ID-tijdstempels
- Auditing: Valideren van chronologische integriteit
- Beveiligingsanalyse: Detecteren van vervalste of gemanipuleerde ID's
- Gegevensherstel: Herbouwen van temporele relaties
- Systeemmigraties: Begrijpen van legacy UUID-implementatiedetails
MAC-adressextractie (v1/v6)
Voor UUID v1 en v6 kunt u vaak de node-identificatie (MAC-adres) extraheren als deze niet willekeurig is gemaakt tijdens generatie:
- Extraheer de laatste 12 hexadecimale cijfers (48 bits) uit de UUID
- Formaat 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 willekeurige node-ID in plaats van een echt MAC-adres.
Veelgestelde vragen
Kan ik precies bepalen wanneer een UUID v4 is gemaakt?
Nee. UUID v4 is volledig willekeurig zonder tijdstempelinformatie. Het aanmaaktijdstip kan niet worden bepaald uit een UUID v4-waarde.
Hoe nauwkeurig zijn tijdstempels in tijdgebaseerde UUID's?
UUID v1/v6 tijdstempels hebben een precisie van 100 nanoseconden. UUID v7 en ULID hebben millisecondeprecisie. De werkelijke systeemtijdkloknauwkeurigheid kan echter variëren.
Kan ik converteren tussen UUID-versies?
Nee, u kunt niet direct converteren tussen versies terwijl u dezelfde identificatiewaarde behoudt. Verschillende versies hebben fundamenteel verschillende structuren.
Kan ik de computer identificeren die een UUID v1 heeft gegenereerd?
Als de node-ID niet willekeurig was, kan een UUID v1 het MAC-adres van het genererende systeem bevatten. Veel moderne implementaties randomiseren dit echter voor privacy.
Hoe kan ik zien of een UUID geldig is?
Controleer het formaat (8-4-4-4-12 hexadecimale cijfers), verifieer dat het versiecijfer (13e teken) 1-8 is, en bevestig de variantbits (17e teken is 8, 9, A of B voor RFC 4122 UUID's).