UUID Decoder at Validator

I-decode at i-validate ang mga UUID upang kunin ang bersyon, timestamp at metadata

Subukan ang mga halimbawang ito:

Ano ang UUID Decoding?

Pag-decode ng UUID ay ang proseso ng pagsusuri ng isang UUID upang makuha ang impormasyon tungkol sa:

  • Version: Aling UUID version (1-8) base sa 4 bits sa posisyon 48-51
  • Variant: Aling UUID variant (karaniwang RFC 4122) base sa bits 64-65
  • Components: Pagkuha ng timestamp, node ID, o ibang data base sa version
  • Oras ng paglikha: Para sa time-based UUIDs (v1, v6, v7)

Example: 123e4567-e89b-12d3-a456-426614174000 ay isang Version 1 UUID na nilikha noong 2018-10-03 09:45:32 UTC.

Pangkalahatang Balangkas ng UUID Structure

FormatDescription
8-4-4-4-1232 hex digits na pinangkat gamit ang hyphens
Version bitsBits 48-51 (ika-13 na digit)
Variant bitsBits 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 base sa UUID Version

VersionAno ang maaaring ma-decode
UUID v1
  • Timestamp (na may 100ns precision, mula Oktubre 15, 1582)
  • MAC address (kung hindi randomized)
  • Clock sequence (para sa pag-iwas ng collision)
UUID v3/v5
  • Hindi ma-decode ang orihinal na input
  • Maaaring beripikahin kung nilikha mula sa kilalang inputs
  • Maaaring makilala ang pagitan ng v3 (MD5) at v5 (SHA-1)
UUID v4
  • Random na data lamang
  • Walang extractable na impormasyon
  • Maaaring beripikahin na ito ay valid na v4 UUID
UUID v6
  • Timestamp (na may 100ns precision, mula Oktubre 15, 1582)
  • MAC address (kung hindi randomized)
  • Clock sequence (para sa pag-iwas ng collision)
UUID v7
  • Unix timestamp (millisecond precision)
  • Random na bahagi (hindi ma-decode)
ULID
  • Unix timestamp (millisecond precision)
  • Random na bahagi (hindi ma-decode)

Pagkuha ng Timestamp mula sa UUIDs

Uri ng UUIDParaan ng Pagkuha ng OrasEpoch
UUID v1Pagsamahin ang bits 0-31, 32-47, at 48-59, muling ayusin ang mga bahagi ng timestampOktubre 15, 1582
UUID v6Kunin ang bits 0-59 (nasa tamang ayos na)Oktubre 15, 1582
UUID v7Kunin ang bits 0-47 (Unix milliseconds)Enero 1, 1970
ULIDI-decode ang unang 10 Base32 characters upang makuha ang 48-bit Unix millisecondsEnero 1, 1970

Mga Panuntunan sa Pag-validate ng UUID

  • Pagsusuri ng format: 8-4-4-4-12 hexadecimal digits na may hyphens
  • Pagsusuri ng version: Ang ika-13 na karakter ay dapat 1-8
  • Pagsusuri ng variant: Ang ika-17 na karakter ay dapat 8, 9, A, o B (para sa RFC 4122)

Regular expression para sa basic UUID validation:

^[0-9a-f]8-[0-9a-f]4-[1-8][0-9a-f]3-[89ab][0-9a-f]3-[0-9a-f]12$

Mga Praktikal na Aplikasyon

  • Forensic analysis: Pagtukoy kung kailan nilikha ang mga ID
  • Debugging: Pagsubaybay sa pag-uugali ng sistema gamit ang mga timestamp ng ID
  • Auditing: Pag-validate ng chronological integrity
  • Security analysis: Pagtuklas ng mga peke o binagong mga ID
  • Pagbawi ng data: Pagbuo muli ng mga temporal na relasyon
  • Mga migration ng sistema: Pag-unawa sa mga detalye ng legacy UUID implementation

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 sa panahon ng paglikha:

  1. Kunin ang huling 12 hex digits (48 bits) mula sa UUID
  2. Format na may mga colon bilang XX:XX:XX:XX:XX:XX
  3. Suriin kung ang MAC address ay tunay o random sa pamamagitan ng pagsusuri sa multicast bit

Kung ang unang byte ay may bit 0x01 na naka-set, malamang na ito ay isang randomized node ID sa halip na totoong MAC address.

Mga Madalas Itanong

Maaari ko bang matukoy kung kailan eksaktong nilikha ang UUID v4?

Hindi. Ang UUID v4 ay puro random at walang timestamp na impormasyon. Hindi matutukoy ang oras ng paglikha mula sa UUID v4 na halaga.

Gaano katumpak ang mga timestamp sa time-based UUIDs?

Ang mga timestamp ng UUID v1/v6 ay may 100-nanosecond precision. Ang UUID v7 at ULID ay may millisecond precision. Gayunpaman, maaaring mag-iba ang aktwal na katumpakan ng system clock.

Maaari ba akong mag-convert sa pagitan ng mga UUID version?

Hindi, hindi mo maaaring direktang i-convert ang mga version habang pinapanatili ang parehong halaga ng identifier. Ang iba't ibang version ay may pangunahing magkakaibang mga istruktura.

Maaari ko bang tukuyin ang computer na gumawa ng UUID v1?

Kung ang node ID ay hindi na-randomize, maaaring naglalaman 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), tiyakin na 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).

Resources