Генератор UUID
Генеруйте UUID v4/v7, ULID і Nano ID — поодинці чи масово
Про цей інструмент
Генеруйте універсально унікальні ідентифікатори чотирьох різновидів: UUID v4 (цілком випадковий, щоденний стандарт), UUID v7 (упорядкований за часом, сучасний вибір для ключів баз даних), ULID (упорядкований за часом із компактним записом Crockford Base32) і Nano ID (короткий, зручний для URL). Створюйте один або до тисячі за раз — по одному в рядку, готовими до вставляння у скрипт наповнення.
Випадковість надходить із Web Crypto API (crypto.getRandomValues) — криптографічно стійкого джерела, а не з Math.random. Генерація локальна, тобто ці ідентифікатори нікому більше не відомі, ніде не записані й доступні офлайн.
Якщо ви обираєте формат ідентифікатора для нової системи: v7 і ULID сортуються за часом створення, що тішить B-дерева індексів і робить ідентифікатори в логах приблизно хронологічними; v4 нічого не розповідає про момент створення — а це подеколи саме те, що потрібно.
Часті запитання
- Чим UUID v4 відрізняється від v7?
- v4 — це 122 випадкові біти. v7 (RFC 9562) починається з 48-бітної позначки часу в unix-мілісекундах, за якою йдуть випадкові біти, тож ідентифікатори, згенеровані пізніше, і сортуються пізніше. Для первинних ключів бази даних v7 зазвичай покращує локальність вставок і розмір індексу; v4 лишається доречним там, де порядок неважливий або час створення не повинен витікати.
- Чи можуть два згенеровані UUID збігтися?
- Зі 122 випадковими бітами ймовірність настільки мала, що закладатися на неї в проєктуванні не варто: довелося б десятиліттями генерувати мільярди ідентифікаторів на секунду, щоб отримати бодай віддалений шанс. Колізії на практиці породжують помилки в коді (повторне використання seed, копіювання рядків), а не випадковість.
- Навіщо обирати ULID замість UUID v7?
- Вони розв’язують ту саму задачу. ULID — це 26 символів нечутливого до регістру Crockford Base32, коротше й охайніше в URL та логах, а v7 зберігає стандартну 36-символьну форму UUID, яку вже приймають усі бази даних і бібліотеки. Обирайте те, що ваша екосистема підтримує природніше.
- Чи можна використовувати ці ідентифікатори як секрети або токени?
- Випадковість криптографічно стійка, але ідентифікатори зазвичай показують, логують та індексують — вони вважаються публічними. Для сесійних токенів чи ключів API згенеруйте окремий секрет щонайменше зі 128 випадковими бітами й поводьтеся з ним, як із паролем.