Dekodues & Vërtetues UUID | Analiza e Versioneve (v1, v4, v7) dhe Kohës

Vendosni UUID-në tuaj në fushën e mësipërme dhe ky mjet (Analizuesi i UUID) menjëherë do të kryejë një kontroll online, do të përcaktojë versionin, vlefshmërinë dhe do të nxjerrë informacione të fshehura.

Çfarë është një Dekodues UUID?

Një Dekodues UUID është një mjet që analizon një UUID (Identifikues Universal Unik) dhe nxjerr të gjitha informacionet e disponueshme prej tij. UUID nuk është thjesht një varg karaktereve të rastësishme – në varësi të versionit, ai mund të përmbajë një vulë kohore, informacione sistemi ose hash të të dhënave deterministike.

Çfarë informacioni mund të merrni nga një UUID?

Informacione bazë rreth UUID-së

Versioni i UUID-së:

  • Përcakton tipin dhe strukturën e UUID-së (v1, v3, v4, v5, v6, v7)
  • Nxirret nga karakteri i 13-të heksadecimal

Varianti:

  • RFC 4122 - Varianti standard i UUID-së
  • NCS - Network Computing System (i vjetëruar)
  • Microsoft - Varianti Microsoft GUID
  • Reserved - Rezervuar për përdorim të ardhshëm

UUID v1 - Vula Kohore + Adresa MAC

Çfarë mund të merrni:

  • Ora e saktë e krijimit - data dhe ora me saktësi 100 nanosekonda
  • Sekuenca e Kohës - numër sekuencial për parandalimin e përplasjeve
  • ID e Nyjës - fillimisht adresa MAC, shpesh vlera të rastësishme

Shembull:

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

Versioni: v1 (Vula Kohore + MAC)
Varianti: RFC 4122
Data dhe Ora: 15.10.1997 04:25:33.000
Sekuenca e Kohës: 724
ID e Nyjës: 00:C0:4F:D4:30:C8

Përdorimi:

  • Përcaktimi i kohës kur u krijua regjistrimi
  • Auditimi dhe analiza forenzike
  • Debugging i problemeve të varura nga koha

UUID v3/v5 - Bazuar në Hash

Çfarë mund të merrni:

  • Tipi i hash-it - MD5 (v3) ose SHA-1 (v5)
  • Nuk mund të merret - hapësira fillestare e emrave dhe emri (hash njëkahësh)

Shembull:

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

Versioni: v5 (hash SHA-1)
Varianti: RFC 4122
Tipi: UUID i bazuar në hash (deterministike)
Shënim: Hapësira fillestare e emrave dhe emri nuk mund të rikthehen nga UUID

Përdorimi:

  • Verifikimi që UUID është deterministik
  • Identifikimi i tipit të UUID-së në bazën e të dhënave
  • Kontrolli i qëndrueshmërisë së identifikuesve të bazuar në hash

UUID v4 - I Rastësishëm

Çfarë mund të merrni:

  • Versioni - konfirmim që është i rastësishëm
  • Varianti - standardi RFC 4122
  • Asnjë të dhënë tjetër - bite krejtësisht të rastësishme

Shembull:

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

Versioni: v4 (I Rastësishëm)
Varianti: RFC 4122
Tipi: UUID i gjeneruar rastësisht

Përdorimi:

  • Verifikimi që UUID është i rastësishëm (jo deterministik)
  • Kontrolli i formatit korrekt të UUID-së
  • Validimi i UUID-së para ruajtjes në bazën e të dhënave

UUID v6 - Vula Kohore e Renditur

Çfarë mund të merrni:

  • Ora e saktë e krijimit - ri-organizuar për performancë më të mirë të DB
  • Sekuenca e Kohës - numër sekuencial
  • ID e Nyjës - identifikuesi i nyjës

Shembull:

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

Versioni: v6 (Vula Kohore e Renditur)
Varianti: RFC 4122
Data dhe Ora: 30.01.2026 14:23:45.123
Sekuenca e Kohës: 3272
ID e Nyjës: 9E:6B:DE:CE:D8:46

Përdorimi:

  • Përcaktimi i kohës së krijimit të regjistrimit
  • Analiza e rendit kronologjik në DB
  • Debugging i sistemeve të shpërndara

UUID v7 - Vula Kohore Unix

Çfarë mund të merrni:

  • Vula Kohore Unix - milisekonda nga 1.1.1970
  • Data dhe Ora - format standard i vulës kohore Unix
  • Pjesa e rastësishme - nuk mund të dekodohet

Shembull:

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

Versioni: v7 (Vula Kohore Unix)
Varianti: RFC 4122
Data dhe Ora: 30.01.2026 14:23:45.123

Përdorimi:

  • Marrja e kohës së krijimit të UUID-ve moderne
  • Analiza e rendit kohor
  • Migrimi i të dhënave me vula kohore

Struktura e UUID-së

UUID ka formatin: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

6ba7b810-9dad-11d1-80b4-00c04fd430c8
│      │ │  │ │  │ │  │ │           │
│      │ │  │ │  │ │  │ └───────────┴─ Nyja (48 bit)
│      │ │  │ │  │ └──┴─────────────── Sekuenca e Kohës (14 bit)
│      │ │  │ └──┴────────────────────── Varianti (2-3 bit)
│      │ └──┴───────────────────────────── Versioni (4 bit) + Time High
│      └──────────────────────────────────── Time Mid (16 bit)
└─────────────────────────────────────────── Time Low (32 bit)

Nxjerja e versioneve dhe varianteve

Versioni (M):

  • Pozicioni: karakteri i 13-të heksadecimal
  • Vlerat: 1-7 (versione të ndryshme të UUID-së)

Varianti (N):

  • Pozicioni: karakteri i 17-të heksadecimal
  • 0-7: NCS (Rezervuar)
  • 8-B: RFC 4122 (standard)
  • C-D: Microsoft
  • E-F: E ardhme (Rezervuar)

Shembuj Praktikë

Debugging - Zbulimi i kohës së krijimit të regjistrimit

Skenari: Një përdorues raporton se të dhënat e tij janë zhdukur. Duhet të zbuloni kur është krijuar regjistrimi.

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

→ Regjistrimi u krijua në vitin 1997

Analiza Forenzike - Verifikimi i Sekuencës Kohore

Skenari: Kontrolli nëse ngjarjet kanë ndodhur në rendin e duhur.

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

→ UUID 2 u krijua më vonë (rendi i duhur)

Identifikimi i tipit të UUID-së në bazën e të dhënave

Skenari: Keni UUID të përziera në DB dhe duhet të dini cilat janë të rastësishme dhe cilat kanë vulë kohore.

f47ac10b-58cc-4372-a567-0e02b2c3d479 → v4 (e rastësishme, pa vulë kohore)
6ba7b810-9dad-11d1-80b4-00c04fd430c8 → v1 (ka vulë kohore)
017f22e2-79b0-7cc3-98c4-dc0c0c07398f → v7 (ka vulë kohore)

→ Vetëm UUID-të v1 dhe v7 përmbajnë informacione kohore

Kufizimet dhe çfarë nuk mund të merret

❌ UUID v3/v5 - Hash-i nuk mund të dekodohet

E pamundur:

  • Të rikthehet hapësira fillestare e emrave
  • Të rikthehet emri/vlera fillestare
  • Të zbulohet se çfarë të dhënash janë hash-uar

Arsyeja: MD5 dhe SHA-1 janë funksione hash-imi njëkahëshe.

❌ UUID v4 - Asnjë e dhënë e fshehur

E pamundur:

  • Të merren çfarëdo meta-të dhënash
  • Të zbulohet koha e krijimit
  • Të identifikohet burimi

Arsyeja: UUID v4 është krejtësisht i rastësishëm, nuk përmban informacione të strukturuara.

⚠️ UUID v1/v6 - ID e Nyjës mund të jetë e rastësishme

Kufizimi:

  • Në implementimet moderne, ID e Nyjës shpesh është e rastësishme (jo adresa reale MAC)
  • Për shkak të mbrojtjes së privatësisë, adresat MAC shpesh zëvendësohen me vlera të rastësishme
  • Nuk mund të identifikohet me besueshmëri një makinë specifike

Validimi i UUID-së

Dekoduesi funksionon edhe si vërtetues i UUID-së.

Kontrolli i vlefshmërisë së UUID-së

Dekoduesi vërteton automatikisht:

  • ✅ Formatin e saktë (8-4-4-4-12 karaktere heksadecimale)
  • ✅ Karakteret heksadecimale të vlefshme (0-9, a-f)
  • ✅ Gjatësinë e saktë (36 karaktere duke përfshirë vizat, 32 pa vizat)

Njohja e UUID-ve të pavlefshme

Shembuj të pavlefshëm:

❌ 6ba7b810-9dad-11d1-80b4          (shumë e shkurtër)
❌ 6ba7b810-9dad-11d1-80b4-GHIJKLMN (karaktere të pavlefshme)
❌ 6ba7b81-09dad-11d1-80b4-00c04fd4 (format i gabuar)

Për Zhvilluesit

Implementimi në JavaScript

// Nxjerja e versionit nga UUID
function getUUIDVersion(uuid) {
    const cleaned = uuid.replace(/-/g, '');
    return parseInt(cleaned[12], 16);
}

// Nxjerja e vulës kohore nga 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);
}

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

Validimi i UUID-së duke përdorur 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);
}

Pyetjet e Shpeshta (FAQ)

A mund të marr kohën e krijimit nga një UUID v4? Jo, UUID v4 është krejtësisht i rastësishëm dhe nuk përmban asnjë informacion kohor. Për UUID me kohë, përdorni v1, v6 ose v7.
Pse ID e Nyjës në UUID v1 është e rastësishme në vend të adresës MAC? Implementimet moderne përdorin ID të rastësishme të Nyjës për shkak të mbrojtjes së privatësisë. Zbulimi i adresës reale MAC mund të ishte një rrezik sigurie.
A mund të rikthej URL-në ose emrin origjinal nga një UUID v5? Jo, UUID v5 përdor hash SHA-1, i cili është njëkahësh. Nga hash-i nuk mund të rikthehen të dhënat origjinale.
Si e di nëse një UUID është i rastësishëm (v4)? Dekoduesi shfaq versionin e UUID-së. Nëse versioni është 4, atëherë është një UUID e gjeneruar rastësisht pa meta-të dhëna të tjera.
A është e saktë vula kohore në UUID v1? Po, UUID v1 ka një saktësi teorike prej 100 nanosekondash (nga 15 tetori 1582). Në praktikë, varet nga saktësia e orës së sistemit.
A mund ta përdor dekoduesin për të vërtetuar UUID-në? Po, dekoduesi vërteton automatikisht formatin e UUID-së dhe shfaq një gabim nëse UUID është i pavlefshëm.

Siguria dhe Privatësia

Çfarë zbulon UUID-ja?

UUID v1/v6:

  • ⚠️ Koha e krijimit - mund të zbulojë kohën e operacioneve
  • ⚠️ Potencialisht adresa MAC - rrezik identifikimi të pajisjes (në implementimet moderne e rastësishme)

UUID v4:

  • E sigurt - nuk përmban asnjë meta-të dhënë

UUID v7:

  • ⚠️ Vula Kohore Unix - zbulon kohën e krijimit

Rekomandime

  • ✅ Përdorni UUID v4 për privatësi maksimale
  • ⚠️ Kujdes me UUID v1/v6/v7 në API publike (zbulojnë informacione kohore)
  • ✅ UUID v5 është deterministike, por nuk zbulon të dhënat origjinale
  • ⚠️ Hash-i MD5 nuk është plotësisht i sigurt

Fakti interesantë

  • UUID v1 më i vjetër i mundshëm: 15 Tetor 1582 00:00:00 (fillimi i kalendarit Gregorian)
  • UUID v7 më i ri: 10889-08-02 05:31:50.655 (limiti i vulës kohore Unix në ms)
  • Saktësia e UUID v1: 100 nanosekonda (teorikisht 10 milionë UUID në sekondë)
  • UUID Nil: 00000000-0000-0000-0000-000000000000 (UUID special “bosh”)
  • UUID Max: ffffffff-ffff-ffff-ffff-ffffffffffff (vlera maksimale)

Përdorimi në Sisteme të Ndryshme

PostgreSQL

-- Nxjerja e versionit UUID
SELECT substring(id::text, 15, 1) as version
FROM users;

-- Filtrimi sipas versionit
SELECT *
FROM users
WHERE substring(id::text, 15, 1) = '4';

MySQL

-- Kontrolli i formatit UUID
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}$';