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 variantasNCS- Network Computing System (pasenęs)Microsoft- Microsoft GUID variantasReserved- 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: MicrosoftE-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}$';