UUID Декодер & Валидатор | Анализа на верзии (v1, v4, v7) и време

Внесете го вашето UUID во полето погоре и оваа алатка (UUID Анализатор) веднаш ќе изврши онлајн проверка, ќе ја одреди верзијата, валидноста и ќе извлече скриени информации.

Што е UUID Декодер?

UUID Декодер е алатка која го анализира UUID (Универзално Единствен Идентификатор) и ги извлекува сите достапни информации од него. UUID не е само случаен низа од знаци – во зависност од верзијата, може да содржи временски печат, системски информации или хаш на детерминистички податоци.

Кои информации можете да ги добиете од UUID?

Основни информации за UUID

Верзија на UUID:

  • Го одредува типот и структурата на UUID (v1, v3, v4, v5, v6, v7)
  • Извлечено од 13-тиот хексадецимален знак

Варијанта:

  • RFC 4122 - Стандардна UUID варијанта
  • NCS - Network Computing System (застарено)
  • Microsoft - Microsoft GUID варијанта
  • Reserved - Резервирано за идна употреба

UUID v1 - Временски печат + MAC адреса

Што можете да добиете:

  • Точно време на создавање - датум и време со точност од 100 наносекунди
  • Секвенца на часовник - секвенциски број за спречување судири
  • ID на јазол - првично MAC адреса, често случајни вредности

Пример:

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

Верзија: v1 (Временски печат + MAC)
Варијанта: RFC 4122
Датум и време: 15.10.1997 04:25:33.000
Секвенца на часовник: 724
ID на јазол: 00:C0:4F:D4:30:C8

Употреба:

  • Одредување кога е креиран записот
  • Аудит и форензичка анализа
  • Отстранување грешки во временски зависни проблеми

UUID v3/v5 - Базирано на хаш

Што можете да добиете:

  • Тип на хаш - MD5 (v3) или SHA-1 (v5)
  • Не може да се добие - оригинален именски простор и име (еднонасочен хаш)

Пример:

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

Верзија: v5 (SHA-1 хаш)
Варијанта: RFC 4122
Тип: UUID базирано на хаш (детерминистичко)
Забелешка: Оригиналниот именски простор и името не можат да се вратат од UUID

Употреба:

  • Проверка дали UUID е детерминистичко
  • Идентификација на типот на UUID во базата на податоци
  • Проверка на конзистентноста на идентификаторите базирани на хаш

UUID v4 - Случајно

Што можете да добиете:

  • Верзија - потврда дека е случајно
  • Варијанта - RFC 4122 стандард
  • Нема други податоци - чисто случајни битови

Пример:

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

Верзија: v4 (Случајно)
Варијанта: RFC 4122
Тип: Случајно генериран UUID

Употреба:

  • Проверка дали UUID е случајно (не детерминистичко)
  • Проверка на точниот формат на UUID
  • Валидација на UUID пред зачувување во базата на податоци

UUID v6 - Подреден временски печат

Што можете да добиете:

  • Точно време на создавање - преуредено за подобри перформанси на базата на податоци
  • Секвенца на часовник - секвенциски број
  • ID на јазол - идентификатор на јазол

Пример:

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

Верзија: v6 (Подреден временски печат)
Варијанта: RFC 4122
Датум и време: 30.01.2026 14:23:45.123
Секвенца на часовник: 3272
ID на јазол: 9E:6B:DE:CE:D8:46

Употреба:

  • Одредување на времето на создавање на записот
  • Анализа на хронолошко подредување во базата на податоци
  • Отстранување грешки во дистрибуирани системи

UUID v7 - Unix временски печат

Што можете да добиете:

  • Unix временски печат - милисекунди од 1.1.1970
  • Датум и време - стандарден Unix временски печат формат
  • Случаен дел - не може да се декодира

Пример:

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

Верзија: v7 (Unix временски печат)
Варијанта: RFC 4122
Датум и време: 30.01.2026 14:23:45.123

Употреба:

  • Добивање на времето на создавање на модерни UUID
  • Анализа на временско подредување
  • Миграција на податоци со временски ознаки

Структура на UUID

UUID има формат: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

6ba7b810-9dad-11d1-80b4-00c04fd430c8
│      │ │  │ │  │ │  │ └───────────┴─ Јазол (48 бита)
│      │ │  │ │  │ └──┴─────────────── Секвенца на часовник (14 бита)
│      │ │  │ └──┴────────────────────── Варијанта (2-3 бита)
│      │ └──┴───────────────────────────── Верзија (4 бита) + Високо Време
│      └──────────────────────────────────── Средно Време (16 бита)
└─────────────────────────────────────────── Ниско Време (32 бита)

Извлекување верзии и варијанти

Верзија (M):

  • Позиција: 13-ти хексадецимален знак
  • Вредности: 1-7 (различни верзии на UUID)

Варијанта (N):

  • Позиција: 17-ти хексадецимален знак
  • 0-7: NCS (Резервирано)
  • 8-B: RFC 4122 (стандард)
  • C-D: Microsoft
  • E-F: Идно (Резервирано)

Практични примери

Отстранување грешки - Одредување на времето на создавање на запис

Сценарио: Корисникот известува дека неговите податоци исчезнале. Треба да дознаете кога е креиран записот.

UUID: 6ba7b810-9dad-11d1-80b4-00c04fd430c8
Декодирано: 15.10.1997 04:25:33.000

→ Записот е креиран во 1997 година

Форензичка анализа - Проверка на временска низа

Сценарио: Проверка дали настаните се случиле по правилен редослед.

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 е креирано подоцна (точен редослед)

Идентификација на типот на UUID во базата на податоци

Сценарио: Имате мешани UUID во базата на податоци и треба да знаете кои се случајни, а кои имаат временски печат.

f47ac10b-58cc-4372-a567-0e02b2c3d479 → v4 (случајно, без временски печат)
6ba7b810-9dad-11d1-80b4-00c04fd430c8 → v1 (има временски печат)
017f22e2-79b0-7cc3-98c4-dc0c0c07398f → v7 (има временски печат)

→ Само v1 и v7 UUID содржат временски информации

Ограничувања и што не може да се добие

❌ UUID v3/v5 - Не може да се декодира хашот

Невозможно:

  • Да се врати оригиналниот именски простор
  • Да се врати оригиналното име/вредност
  • Да се дознае кои податоци биле хаширани

Причина: MD5 и SHA-1 се еднонасочни хаш функции.

❌ UUID v4 - Нема скриени податоци

Невозможно:

  • Да се добијат какви било метаподатоци
  • Да се дознае времето на создавање
  • Да се идентификува изворот

Причина: UUID v4 е чисто случајно, не содржи никакви структурирани информации.

⚠️ UUID v1/v6 - ID на јазол може да биде случајно

Ограничувања:

  • Во современите имплементации, ID на јазол често е случајно (не е вистинска MAC адреса)
  • Поради заштита на приватноста, MAC адресите често се заменуваат со случајни вредности
  • Не може сигурно да се идентификува конкретна машина

Валидација на UUID

Декодерот функционира и како UUID валидатор.

Проверка на валидност на UUID

Декодерот автоматски валидира:

  • ✅ Точен формат (8-4-4-4-12 хексадецимални знаци)
  • ✅ Валидни хексадецимални знаци (0-9, a-f)
  • ✅ Точна должина (36 знаци вклучувајќи цртички, 32 без)

Препознавање на невалидни UUID

Невалидни примери:

❌ 6ba7b810-9dad-11d1-80b4          (премногу кратко)
❌ 6ba7b810-9dad-11d1-80b4-GHIJKLMN (невалидни знаци)
❌ 6ba7b81-09dad-11d1-80b4-00c04fd4 (погрешен формат)

За програмери

Имплементација во JavaScript

// Извлекување верзија од UUID
function getUUIDVersion(uuid) {
    const cleaned = uuid.replace(/-/g, '');
    return parseInt(cleaned[12], 16);
}

// Извлекување временски печат од 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);
}

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

Валидација на UUID со помош на 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);
}

Често поставувани прашања (ЧПП)

Дали можам да добијам време на создавање од UUID v4? Не, UUID v4 е чисто случајно и не содржи никакви временски информации. За UUID со време, користете v1, v6 или v7.
Зошто ID на јазол во UUID v1 е случајно наместо MAC адреса? Современите имплементации користат случајно ID на јазол поради заштита на приватноста. Откривањето на вистинската MAC адреса може да биде безбедносен ризик.
Дали можам да го вратам оригиналното URL или име од UUID v5? Не, UUID v5 користи SHA-1 хаш, кој е еднонасочен. Од хашот не можат да се вратат оригиналните податоци.
Како да знам дали UUID е случајно (v4)? Декодерот ќе ја прикаже верзијата на UUID. Ако верзијата е 4, тоа е случајно генериран UUID без дополнителни метаподатоци.
Дали временскиот печат во UUID v1 е точен? Да, UUID v1 има теоретска точност од 100 наносекунди (од 15 октомври 1582 година). Во пракса, зависи од точноста на системскиот часовник.
Дали можам да го користам декодерот за валидација на UUID? Да, декодерот автоматски го валидира форматот на UUID и прикажува грешка ако UUID е невалиден.

Безбедност и приватност

Што открива UUID?

UUID v1/v6:

  • ⚠️ Време на создавање - може да го открие времето на операциите
  • ⚠️ Потенцијално MAC адреса - ризик од идентификација на уредот (во современите имплементации случајно)

UUID v4:

  • Безбедно - не содржи никакви метаподатоци

UUID v7:

  • ⚠️ Unix временски печат - открива време на создавање

Препораки

  • ✅ Користете UUID v4 за максимална приватност
  • ⚠️ Бидете внимателни со UUID v1/v6/v7 во јавни API (откриваат временски информации)
  • ✅ UUID v5 е детерминистичко, но не ги открива оригиналните податоци
  • ⚠️ MD5 Хашот не е целосно безбеден

Интересни факти

  • Најстаро можно UUID v1: 15 октомври 1582 00:00:00 (почеток на грегоријанскиот календар)
  • Најново UUID v7: 10889-08-02 05:31:50.655 (лимит на Unix временскиот печат во ms)
  • Точност на UUID v1: 100 наносекунди (теоретски 10 милиони UUID во секунда)
  • UUID Нил: 00000000-0000-0000-0000-000000000000 (специјално “празно” UUID)
  • UUID Макс: ffffffff-ffff-ffff-ffff-ffffffffffff (максимална вредност)

Употреба во различни системи

PostgreSQL

-- Извлекување верзија на UUID
SELECT substring(id::text, 15, 1) as version
FROM users;

-- Филтрирање по верзија
SELECT *
FROM users
WHERE substring(id::text, 15, 1) = '4';

MySQL

-- Проверка на 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}$';