Ano ang UUID Decoding?
pag-decode ng UUID ang proseso ng pagsusuri ng UUID upang makuha ang impormasyon tungkol sa:
- Version: Aling UUID version (1-8) batay sa 4 na bit sa posisyong 48-51
- Variant: Aling variant ng UUID (karaniwang RFC 4122) batay sa mga bit 64-65
- Components: Pagkuha ng timestamp, node ID, o iba pang data batay sa version
- Oras ng pag-generate: Para sa time-based na UUID (v1, v6, v7)
Example: 123e4567-e89b-12d3-a456-426614174000 ay isang Version 1 UUID na may timestamp 2228-06-25T20:01:28.545Z kapag ipinapakita sa JavaScript millisecond precision.
Balangkas ng Estruktura ng UUID
| Format | Description |
|---|---|
| 8-4-4-4-12 | 32 hex na digit na pinangkat ng mga hyphen |
| Mga version bit | Mga bit 48-51 (ika-13 na digit) |
| Mga variant bit | Mga bit 64-65 (ika-17 na digit) |
Ang numero ng version ay lumilitaw bilang unang hex digit sa ikatlong grupo (halimbawa, 123e4567-e89b-12d3-a456-426614174000 para sa version 1).
Pag-decode ayon sa UUID Version
| Version | Ano ang maaaring i-decode |
|---|---|
| UUID v1 |
|
| UUID v3/v5 |
|
| UUID v4 |
|
| UUID v6 |
|
| UUID v7 |
|
Pagkuha ng Timestamp mula sa mga UUID
| Uri ng UUID | Paraan ng Pagkuha ng Oras | Epoch |
|---|---|---|
| UUID v1 | Pagsamahin ang mga bit 0-31, 32-47, at 48-59, muling inayos ang mga bahagi ng timestamp | Oktubre 15, 1582 |
| UUID v6 | Pagsamahin ang mga bit 0-47 kasama ang mga bit 52-63; ang mga bit 48-51 ay ang version at hindi isinama | Oktubre 15, 1582 |
| UUID v7 | I-extract ang mga bit 0-47 (Unix milliseconds) | Enero 1, 1970 |
Mga Patakaran sa Pag-validate ng UUID
- Suriin ang format: 8-4-4-4-12 hexadecimal na digit na may mga hyphen
- Suriin ang version: Ang ika-13 na karakter ay dapat 1-8
- Suriin ang variant: Ang ika-17 karakter ay dapat 8, 9, A, o B (para sa RFC 4122)
Regular expression para sa basic na pag-validate ng UUID:
^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$Halimbawa ng timestamp ng UUID v7
017f22e2-79b0-7cc3-98c4-dc0c0c07398f ay ang RFC 9562 UUIDv7 test vector. Ang unang 48 bits nito ay Unix milliseconds, na nag-de-decode sa 2022-02-22T19:22:22.000Z, 1645557742000 mga millisecond, o 1645557742 seconds.
Gumawa ng bagong UUID v7, o magpatuloy sa Unix Timestamp Converter. Ang mga link na ito ay hindi kasama ang UUID na iyong ipinasok.
Praktikal na Aplikasyon
- Forensic analysis: Pagtukoy kung kailan ginawa ang mga ID
- Debugging: Pagsusubaybay ng pag-uugali ng system sa pamamagitan ng mga timestamp ng ID
- Auditing: Pag-verify ng kronolohikal na integridad
- Mga pagsusuri sa format: Pag-detect ng mga malformed na ID; ang valid na UUID ay hindi nagpapatunay ng pagiging tunay
- Pag-recover ng data: Pag-rekonstruksiyon ng mga temporal na relasyon
- System migrations: Pag-unawa sa detalye ng legacy na implementasyon ng UUID
Pagkuha ng MAC Address (v1/v6)
Para sa UUID v1 at v6, madalas mong makuha ang node identifier (MAC address) kung hindi ito na-randomize noong pag-generate:
- I-extract ang huling 12 hex na digit (48 bits) mula sa UUID
- I-format gamit ang mga colon bilang XX:XX:XX:XX:XX:XX
- Suriin kung ang MAC address ay tunay o random sa pamamagitan ng pagtingin sa multicast bit
Kung ang unang byte ay may bit 0x01 na naka-set, malamang na randomized ang node ID kaysa totoong MAC address.
Mga Madalas Itanong
Maaari ko bang malaman nang eksakto kung kailan ginawa ang isang UUID v4?
Hindi. Ang UUID v4 ay puro random at walang timestamp na impormasyon. Hindi maaaring matukoy ang oras ng paglikha mula sa UUID v4.
Gaano katumpak ang mga timestamp sa mga time-based na UUID?
Ang UUID v1/v6 timestamps ay may 100-nanosecond precision. Ang UUID v7 ay may millisecond precision. Gayunpaman, maaaring mag-iba ang aktwal na katumpakan ng system clock.
Maaari ko bang mag-convert sa pagitan ng mga UUID version?
Hindi, hindi mo maaaring direktang i-convert ang mga version habang pinapanatili ang parehong identifier value. Ang mga version ay may magkaibang estruktura.
Maaari ko bang tukuyin kung anong computer ang gumawa ng isang UUID v1?
Kung hindi na-randomize ang node ID, maaaring maglaman ang UUID v1 ng MAC address ng system na gumawa nito. Gayunpaman, maraming modernong implementasyon ang nagra-randomize nito para sa privacy.
Paano ko malalaman kung valid ang isang UUID?
Suriin ang format (8-4-4-4-12 hex digits), i-verify ang version digit (ika-13 na karakter) ay 1-8, at kumpirmahin ang variant bits (ika-17 na karakter ay 8, 9, A, o B para sa RFC 4122 UUIDs).