Декодер і валідатор UUID | Аналіз версій (v1, v4, v7) і часу

Вставте ваш UUID у поле вище, і цей інструмент (UUID Parser) негайно проведе онлайн-перевірку, визначить версію, валідність та витягне приховану інформацію.

Що таке Декодер UUID?

Декодер UUID – це інструмент, який аналізує UUID (Universally Unique Identifier) та витягує з нього всю доступну інформацію. 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 - мілісекунди від 01.01.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 біти) + Time High
│      └──────────────────────────────────── Time Mid (16 біт)
└─────────────────────────────────────────── Time Low (32 біти)

Вилучення версій та варіантів

Версія (M):

  • Позиція: 13-й шістнадцятковий символ
  • Значення: 1-7 (різні версії UUID)

Варіант (N):

  • 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 (має часову мітку)

→ Лише UUID v1 та v7 містять інформацію про час

Обмеження та що неможливо отримати

❌ 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);
}

Поширені запитання (FAQ)

Чи можу я отримати час створення з UUID v4? Ні, UUID v4 є суто випадковим і не містить жодної інформації про час. Для UUID з часовою міткою використовуйте v1, v6 або v7.
Чому Node ID в UUID v1 є випадковим замість MAC-адреси? Сучасні реалізації використовують випадковий Node 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 у мс)
  • Точність UUID v1: 100 наносекунд (теоретично 10 мільйонів UUID за секунду)
  • UUID Nil: 00000000-0000-0000-0000-000000000000 (спеціальний “порожній” UUID)
  • UUID Max: 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}$';