Skip to main content
CheckTown
Валідатори

Валідатор UUID: Як перевірити формат і версію будь-якого UUID

Опубліковано 6 хв читання
У цій статті

Що таке UUID?

UUID (Universally Unique Identifier) — це 128-бітне значення, що використовується для унікальної ідентифікації інформації в комп'ютерних системах. Записаний у вигляді 32 шістнадцяткових цифр, розділених на п'ять груп дефісами, UUID виглядає як 550e8400-e29b-41d4-a716-446655440000.

UUID створені для забезпечення глобальної унікальності без необхідності центрального органу реєстрації. Це робить їх ідеальними для розподілених систем, де кілька вузлів повинні незалежно генерувати ідентифікатори, які ніколи не збігаються.

Версії UUID

Стандарт UUID визначає кілька версій, кожна з яких має свій метод генерації. Номер версії з'являється як 13-й символ.

  • Версія 1 (v1) — на основі часу: поєднує поточну мітку часу з MAC-адресою машини. Гарантує унікальність, але розкриває апаратну інформацію
  • Версія 3 (v3) — на основі імені з MD5: генерує детерміністичний UUID, хешуючи простір імен та ім'я з MD5
  • Версія 4 (v4) — випадкова: найпоширеніша версія. Усі біти, крім полів версії та варіанту, генеруються випадково
  • Версія 5 (v5) — на основі імені з SHA-1: як v3, але використовує SHA-1. Переважна над v3 для нових реалізацій
  • Версія 7 (v7) — впорядкована за часовою міткою: новіший формат, що поєднує мітку часу Unix з випадковими бітами

Спробуйте безкоштовно — реєстрація не потрібна

Перевірити UUID →

Як працює валідація UUID

Валідація UUID включає перевірку як формату, так і структурних правил. Дійсний UUID повинен відповідати канонічному шістнадцятковому шаблону 8-4-4-4-12.

  • Перевірка формату — рядок повинен містити рівно 32 шістнадцяткові символи, розташовані в п'яти групах, розділених чотирма дефісами
  • Перевірка версії — 13-й символ повинен бути дійсним номером версії (1, 2, 3, 4, 5, 6, 7 або 8)
  • Перевірка варіанту — 17-й символ повинен вказувати варіант RFC 4122 (8, 9, a або b)

Типові випадки використання

UUID є стандартним вибором для ідентифікаторів у багатьох сферах сучасної розробки програмного забезпечення.

  • Первинні ключі бази даних — UUID дозволяють генерувати ключі на стороні клієнта без зворотних звернень до бази даних
  • Ідентифікатори ресурсів API — використання UUID замість послідовних цілих чисел запобігає атакам перерахування
  • Ідентифікатори сесій та кореляції — UUID відстежують запити через мікросервіси
  • Іменування файлів та об'єктів — системи хмарного зберігання використовують UUID для уникнення конфліктів імен

Найкращі практики

Вибір правильної версії UUID та коректне поводження з ними може запобігти тонким помилкам та проблемам продуктивності.

  • Використовуйте v4 для загальних випадкових ідентифікаторів — це найпоширеніший вибір без зовнішніх залежностей
  • Використовуйте v7, коли потрібні ідентифікатори, що сортуються за часом — UUID v7 сортуються хронологічно
  • Зберігайте UUID як 16-байтовий бінарний формат у базах даних замість рядків з 36 символів
  • Завжди валідуйте UUID, отримані із зовнішнього введення — ніколи не припускайте, що надані користувачем рядки правильно сформовані

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

Чи можуть два UUID бути однаковими?

Хоча теоретично це можливо, ймовірність колізії з UUID v4 є астрономічно низькою. Потрібно згенерувати близько 2,7 квінтильйона UUID, щоб мати 50 відсотків шансу на одну колізію.

UUID чутливий до регістру?

Ні. Стандарт RFC 4122 вказує, що UUID повинні виводитися в нижньому регістрі, але реалізації повинні приймати обидва варіанти як еквівалентні.

Що краще використовувати — UUID чи ULID?

ULID — це 128-бітні ідентифікатори, які лексикографічно сортуються. Якщо вам потрібна сортованість без складності UUID v7, ULID є хорошою альтернативою.

Пов'язані інструменти