Utilia

Генератор UUID

Безкоштовний генератор UUID версій 4 і 7. Створюйте до 1000 ідентифікаторів одразу, великими літерами чи без дефісів, і копіюйте або завантажуйте як .txt.

Версія

Як користуватися генератором UUID

  1. Виберіть Версія UUID: v4 для повністю випадкових ідентифікаторів або v7 для впорядкованих за часом.
  2. Укажіть Кількість потрібних UUID – від 1 до 1000.
  3. За бажання ввімкніть Великі літери або вимкніть Дефіси, якщо система, у яку ви їх передаєте, очікує компактну 32-символьну форму.
  4. Натисніть Згенерувати, а потім скопіюйте список у буфер обміну або завантажте його як файл .txt із одним UUID на рядок.

Що таке UUID?

UUID (Universally Unique Identifier), у світі Microsoft відомий як GUID, – це 128-бітне значення, яке використовують, щоб ідентифікувати щось без центрального органу, що роздає номери. Його зазвичай записують як 32 шістнадцяткові цифри у п’яти групах, розділених дефісами, за шаблоном 8-4-4-4-12, наприклад f47ac10b-58cc-4372-a567-0e02b2c3d479. Перша цифра третьої групи – це версія, а перша цифра четвертої групи кодує варіант (8, 9, a або b для стандартних UUID).

Оскільки будь-який комп’ютер може створити UUID самостійно з нікчемною ймовірністю колізії, UUID широко використовують як первинні ключі баз даних, ідентифікатори запитів і кореляції в журналах, імена файлів для завантажень, ключі ідемпотентності для API та ідентифікатори в розподілених системах, де кілька серверів створюють записи одночасно.

Версія 4 чи версія 7

Обидві версії визначено в RFC 9562, стандарті 2024 року, який замінив RFC 4122.

UUID v4 майже повністю випадковий: 122 із його 128 біт надходять від генератора випадкових чисел, а решта 6 біт зберігає версію й варіант. Він нічого не розкриває про те, коли чи де його створено. Імовірність колізії настільки мала, що для однієї на мільярд імовірності єдиного дубліката довелося б згенерувати приблизно 103 трильйони UUID v4. Вибирайте v4, коли вам потрібні непрозорі ідентифікатори без жодної інформації.

UUID v7 починається з 48-бітної Unix-мітки часу в мілісекундах, за якою йдуть версія, варіант і 74 випадкові біти. Тому v7 UUID, згенеровані пізніше, сортуються після згенерованих раніше. Для баз даних це дуже важливо: випадкові ключі v4 вставляються в розсіяні позиції індексу B-дерева, спричиняючи розщеплення сторінок і погану локальність кешу, тоді як ключі v7 додаються ближче до кінця, майже як автоінкрементне ціле число. Вибирайте v7 для первинних ключів і всього, що потрібно сортувати за часом створення. Пам’ятайте, що з v7 UUID можна прочитати час створення, тож не використовуйте його там, де ця інформація чутлива.

Випадковість і безпека

Цей інструмент використовує криптографічно стійкий генератор випадкових чисел браузера (Web Crypto API), а не Math.random(), який не призначений бути непередбачуваним. UUID генеруються локально на вашому пристрої й ніколи не надсилаються на сервер і не журналюються ним, тож ніхто інший ніколи не бачить значень, які ви створюєте.

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

Параметри форматування

Канонічна форма – малі літери з дефісами, і RFC 9562 рекомендує вивід малими літерами. Деякі системи, як-от старіші інструменти Windows чи певні бази даних, показують GUID великими літерами, а деякі формати зберігання віддають перевагу 32-символьній формі без дефісів. Обидва параметри змінюють лише текстове подання; базове 128-бітне значення однакове, і більшість розбирачів приймають усі ці форми.

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

Чи гарантовано, що UUID унікальні?

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

Що використовувати як первинний ключ бази даних: UUID v4 чи v7?

Для більшості нових проєктів краще v7: він зберігає індекси компактними й швидко вставляється, бо значення надходять у приблизно зростальному порядку. Використовуйте v4, якщо не хочете, щоб час створення був видимий в ідентифікаторі.

Чи GUID – це те саме, що UUID?

Так. GUID – це назва, яку Microsoft використовує для того самого 128-бітного формату. GUID із .NET чи SQL Server взаємозамінний з UUID з інших платформ.

Чи можуть два UUID v7, створені в одну мілісекунду, збігтися?

Вони мають однаковий префікс мітки часу, але решта 74 випадкових біти роблять збіг надзвичайно малоймовірним. У межах однієї мілісекунди їхній взаємний порядок не гарантовано збігається з точним порядком створення.

Чому дефіси необов’язкові?

Дефіси потрібні лише для читабельності. Їх видалення дає 32-символьний шістнадцятковий рядок, що позначає те саме значення, який віддають перевагу деякі API та формати зберігання.