UUID dekoderis ir validavimas | Versijų (v1, v4, v7) ir laiko analizė

Įveskite savo UUID į laukelį aukščiau ir šis įrankis (UUID analizatorius) iškart atliks patikrinimą internetu, nustatys versiją, galiojimą ir išskirs paslėptą informaciją.

Kas yra UUID dekoderis?

UUID dekoderis yra įrankis, kuris analizuoja UUID (Universally Unique Identifier) ir iš jo išskiria visą prieinamą informaciją. UUID nėra tik atsitiktinė simbolių eilutė – priklausomai nuo versijos, jame gali būti laiko žyma, sistemos informacija arba deterministinių duomenų maišos funkcija (hash).

Kokią informaciją galite gauti iš UUID?

Pagrindinė informacija apie UUID

UUID versija:

  • Nurodo UUID tipą ir struktūrą (v1, v3, v4, v5, v6, v7)
  • Išskiriama iš 13-ojo šešioliktainio simbolio

Variantai:

  • RFC 4122 - Standartinis UUID variantas
  • NCS - Network Computing System (pasenęs)
  • Microsoft - Microsoft GUID variantas
  • Reserved - Rezervuota būsimam naudojimui

UUID v1 - Laiko žyma + MAC adresas

Ką galite gauti:

  • Tikslus sukūrimo laikas - data ir laikas 100 nanosekundžių tikslumu
  • Laikrodžio seka - sekos numeris, siekiant išvengti kolizijų
  • Mazgo ID - iš pradžių MAC adresas, dažnai atsitiktinės reikšmės

Pavyzdys:

UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8

Versija: v1 (Laiko žyma + MAC)
Variantai: RFC 4122
Data ir laikas: 1997.10.15 04:25:33.000
Laikrodžio seka: 724
Mazgo ID: 00:C0:4F:D4:30:C8

Naudojimas:

  • Nustatymas, kada įrašas buvo sukurtas
  • Auditas ir teismo ekspertizės analizė
  • Laiku priklausomų problemų derinimas

UUID v3/v5 - Pagrįstas maišos funkcija

Ką galite gauti:

  • Maišos tipas - MD5 (v3) arba SHA-1 (v5)
  • Negalima gauti - originalios vardų srities ir pavadinimo (vienakryptė maišos funkcija)

Pavyzdys:

UUID: 886313e1-3b8a-5372-9b90-0c9aee199e5d

Versija: v5 (SHA-1 maišos funkcija)
Variantai: RFC 4122
Tipas: Maišos pagrindu sukurtas UUID (deterministinis)
Pastaba: Originalios vardų srities ir pavadinimo negalima atkurti iš UUID

Naudojimas:

  • Patvirtinimas, kad UUID yra deterministinis
  • UUID tipo identifikavimas duomenų bazėje
  • Maišos pagrindu sukurtų identifikatorių nuoseklumo tikrinimas

UUID v4 - Atsitiktinis

Ką galite gauti:

  • Versija - patvirtinimas, kad jis yra atsitiktinis
  • Variantai - RFC 4122 standartas
  • Jokių kitų duomenų - grynai atsitiktiniai bitai

Pavyzdys:

UUID: f47ac10b-58cc-4372-a567-0e02b2c3d479

Versija: v4 (Atsitiktinis)
Variantai: RFC 4122
Tipas: Atsitiktinai sugeneruotas UUID

Naudojimas:

  • Patvirtinimas, kad UUID yra atsitiktinis (ne deterministinis)
  • Tinkamo UUID formato tikrinimas
  • UUID patvirtinimas prieš išsaugant duomenų bazėje

UUID v6 - Surūšiuota laiko žyma

Ką galite gauti:

  • Tikslus sukūrimo laikas - pertvarkytas geresniam DB našumui
  • Laikrodžio seka - sekos numeris
  • Mazgo ID - mazgo identifikatorius

Pavyzdys:

UUID: 1ec9414c-232a-6b00-b3c8-9e6bdeced846

Versija: v6 (Surūšiuota laiko žyma)
Variantai: RFC 4122
Data ir laikas: 2026.01.30 14:23:45.123
Laikrodžio seka: 3272
Mazgo ID: 9E:6B:DE:CE:D8:46

Naudojimas:

  • Įrašo sukūrimo laiko nustatymas
  • Chronologinio rūšiavimo analizė DB
  • Paskirstytųjų sistemų derinimas

UUID v7 - Unix laiko žyma

Ką galite gauti:

  • Unix laiko žyma - milisekundės nuo 1970.01.01
  • Data ir laikas - standartinis Unix laiko žymos formatas
  • Atsitiktinė dalis - negalima dekoduoti

Pavyzdys:

UUID: 017f22e2-79b0-7cc3-98c4-dc0c0c07398f

Versija: v7 (Unix laiko žyma)
Variantai: RFC 4122
Data ir laikas: 2026.01.30 14:23:45.123

Naudojimas:

  • Modernių UUID sukūrimo laiko gavimas
  • Laiko rūšiavimo analizė
  • Duomenų migracija su laiko žymomis

UUID struktūra

UUID formatas yra: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

6ba7b810-9dad-11d1-80b4-00c04fd430c8
│      │ │  │ │  │ │  │ │           │
│      │ │  │ │  │ │  │ └───────────┴─ Mazgas (48 bitai)
│      │ │  │ │  │ └──┴─────────────── Laikrodžio seka (14 bitų)
│      │ │  │ └──┴────────────────────── Variantai (2-3 bitai)
│      │ └──┴───────────────────────────── Versija (4 bitai) + High laikas
│      └──────────────────────────────────── Mid laikas (16 bitų)
└─────────────────────────────────────────── Low laikas (32 bitai)

Versijų ir variantų išskyrimas

Versija (M):

  • Pozicija: 13-tas šešioliktainis simbolis
  • Reikšmės: 1-7 (įvairios UUID versijos)

Variantai (N):

  • Pozicija: 17-tas šešioliktainis simbolis
  • 0-7: NCS (Rezervuota)
  • 8-B: RFC 4122 (standartas)
  • C-D: Microsoft
  • E-F: Ateičiai (Rezervuota)

Praktiniai pavyzdžiai

Derinimas - Įrašo sukūrimo laiko nustatymas

Scenarijus: Vartotojas praneša, kad jo duomenys dingo. Jums reikia nustatyti, kada įrašas buvo sukurtas.

UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8
Dekoduota: 1997.10.15 04:25:33.000

→ Įrašas buvo sukurtas 1997 m.

Teismo ekspertizės analizė - Laiko eigos patvirtinimas

Scenarijus: Patikrinimas, ar įvykiai vyko tinkama tvarka.

UUID 1: 1ec9414c-232a-6b00-b3c8-9e6bdeced846 → 2026.01.30 14:23:45
UUID 2: 1ec9414d-557b-6a00-8f32-1234567890ab → 2026.01.30 14:25:12

→ UUID 2 buvo sukurtas vėliau (teisinga tvarka)

UUID tipo identifikavimas duomenų bazėje

Scenarijus: Turite mišrių UUID duomenų bazėje ir reikia žinoti, kurie yra atsitiktiniai, o kurie turi laiko žymę.

f47ac10b-58cc-4372-a567-0e02b2c3d479 → v4 (atsitiktinis, be laiko žymos)
6ba7b810-9dad-11d1-80b4-00c04fd430c8 → v1 (turi laiko žymą)
017f22e2-79b0-7cc3-98c4-dc0c0c07398f → v7 (turi laiko žymą)

→ Tik v1 ir v7 UUID turi laiko informaciją

Apribojimai ir ko negalima gauti

❌ UUID v3/v5 - Negalima dekoduoti maišos funkcijos

Negalima:

  • Atkurti originalią vardų sritį
  • Atkurti originalų pavadinimą/vertę
  • Nustatyti, kokie duomenys buvo maišomi

Priežastis: MD5 ir SHA-1 yra vienakryptės maišos funkcijos.

❌ UUID v4 - Jokių paslėptų duomenų

Negalima:

  • Gauti jokių metaduomenų
  • Nustatyti sukūrimo laiką
  • Identifikuoti šaltinį

Priežastis: UUID v4 yra grynai atsitiktinis, jame nėra jokios struktūrizuotos informacijos.

⚠️ UUID v1/v6 - Mazgo ID gali būti atsitiktinis

Apribojimai:

  • Šiuolaikinėse implementacijose Mazgo ID dažnai yra atsitiktinis (ne tikrasis MAC adresas)
  • Dėl privatumo apsaugos MAC adresai dažnai pakeičiami atsitiktinėmis reikšmėmis
  • Negalima patikimai identifikuoti konkrečios mašinos

UUID patvirtinimas

Dekoderis taip pat veikia kaip UUID validavimo įrankis.

UUID galiojimo patikrinimas

Dekoderis automatiškai patvirtina:

  • ✅ Teisingas formatas (8-4-4-4-12 šešioliktainių simbolių)
  • ✅ Galiojantys šešioliktainiai simboliai (0-9, a-f)
  • ✅ Teisingas ilgis (36 simboliai su brūkšneliais, 32 be jų)

Neteisingų UUID atpažinimas

Neteisingi pavyzdžiai:

❌ 6ba7b810-9dad-11d1-80b4          (per trumpas)
❌ 6ba7b810-9dad-11d1-80b4-GHIJKLMN (neteisingi simboliai)
❌ 6ba7b81-09dad-11d1-80b4-00c04fd4 (blogas formatas)

Kūrėjams

Implementacija JavaScript’e

// Extrakce verze z UUID
function getUUIDVersion(uuid) {
    const cleaned = uuid.replace(/-/g, '');
    return parseInt(cleaned[12], 16);
}

// Extrakce timestampu z UUID v7
function extractV7Timestamp(uuid) {
    const cleaned = uuid.replace(/-/g, '');
    const timeHi = parseInt(cleaned.substring(0, 8), 16);
    const timeLow = parseInt(cleaned.substring(8, 12), 16);
    const unixMs = Number(BigInt("0x" + cleaned.substring(0, 12)) >> 16n);
    return new Date(unixMs);
}

// Příklad
const uuid = '017f22e2-79b0-7cc3-98c4-dc0c0c07398f';
console.log(getUUIDVersion(uuid)); // 7
console.log(extractV7Timestamp(uuid)); // Date object

UUID patvirtinimas naudojant Regex

const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;

function isValidUUID(uuid) {
    return uuidRegex.test(uuid);
}

Dažnai užduodami klausimai (DUK)

Ar galiu gauti sukūrimo laiką iš UUID v4? Ne, UUID v4 yra grynai atsitiktinis ir neturi jokios laiko informacijos. UUID su laiku naudokite v1, v6 arba v7.
Kodėl UUID v1 Mazgo ID yra atsitiktinis, o ne MAC adresas? Šiuolaikinės implementacijos naudoja atsitiktinį Mazgo ID dėl privatumo apsaugos. Tikrojo MAC adreso atskleidimas galėtų būti saugumo rizika.
Ar galiu atkurti originalų URL arba pavadinimą iš UUID v5? Ne, UUID v5 naudoja SHA-1 maišos funkciją, kuri yra vienakryptė. Iš maišos funkcijos negalima atkurti originalių duomenų.
Kaip žinoti, kad UUID yra atsitiktinis (v4)? Dekoderis parodys UUID versiją. Jei versija yra 4, tai yra atsitiktinai sugeneruotas UUID be papildomų metaduomenų.
Ar UUID v1 laiko žyma yra tiksli? Taip, UUID v1 teoriškai yra 100 nanosekundžių tikslumo (nuo 1582 m. spalio 15 d.). Praktiškai tai priklauso nuo sistemos laikrodžio tikslumo.
Ar galiu naudoti dekoderį UUID patvirtinimui? Taip, dekoderis automatiškai patvirtina UUID formatą ir parodo klaidą, jei UUID yra neteisingas.

Sauga ir privatumas

Ką atskleidžia UUID?

UUID v1/v6:

  • ⚠️ Sukūrimo laikas - gali atskleisti operacijų laiką
  • ⚠️ Potencialiai MAC adresas - įrenginio identifikavimo rizika (šiuolaikinėse implementacijose atsitiktinis)

UUID v4:

  • Saugus - neturi jokių metaduomenų

UUID v7:

  • ⚠️ Unix laiko žyma - atskleidžia sukūrimo laiką

Rekomendacijos

  • ✅ Naudokite UUID v4 maksimaliam privatumui
  • ⚠️ Būkite atsargūs su UUID v1/v6/v7 viešosiose API (atskleidžia laiko informaciją)
  • ✅ UUID v5 yra deterministinis, bet neatskleidžia originalių duomenų
  • ⚠️ MD5 maišos funkcija nėra visiškai saugi

Įdomybės

  • Seniausias galimas UUID v1: 1582 m. spalio 15 d. 00:00:00 (Grigaliaus kalendoriaus pradžia)
  • Naujausias UUID v7: 10889-08-02 05:31:50.655 (Unix laiko žymos limitas ms)
  • UUID v1 tikslumas: 100 nanosekundžių (teoriškai 10 milijonų UUID per sekundę)
  • UUID Nulinis: 00000000-0000-0000-0000-000000000000 (specialus “tuščias” UUID)
  • UUID Maksimalus: ffffffff-ffff-ffff-ffff-ffffffffffff (maksimali reikšmė)

Naudojimas skirtingose sistemose

PostgreSQL

-- UUID versijos išskyrimas
SELECT substring(id::text, 15, 1) as version
FROM users;

-- Filtravimas pagal versiją
SELECT *
FROM users
WHERE substring(id::text, 15, 1) = '4';

MySQL

-- UUID formato tikrinimas
SELECT id
FROM users
WHERE id REGEXP '^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$';