Генератор UUID
Створюйте випадкові UUID версії 4, від одного до ста за раз, і копіюйте їх списком. Їх видає криптографічно стійкий генератор випадкових чисел вашого браузера. Окремий перевіряльник показує версію та варіант будь-якого вставленого UUID.
0 символів · 0 слів · 0 рядків
Працює повністю у вкладці браузера. Ваш текст ніколи не завантажується на сервер і не зберігається.
Версії UUID
Версія — перша цифра третьої групи; варіант закодовано в першій цифрі четвертої групи (8, 9, a або b для UUID за RFC). Приклади взято з тестових векторів RFC 9562.
| Версія | Створено з | Приклад |
|---|---|---|
| v1 | Григоріанська мітка часу + ідентифікатор вузла (MAC) | c232ab00-9414-11ec-b3c8-9f6bdeced846 |
| v3 | Хеш MD5 простору імен + імені | 5df41881-3aed-3515-88a7-2f4a814cf09e |
| v4 | 122 випадкові біти | 919108f7-52d1-4320-9bac-f847db4148a8 |
| v5 | Хеш SHA-1 простору імен + імені | 2ed6657d-e927-568b-95e1-2665a8aea6a2 |
| v6 | Мітка часу v1 з переставленими полями, щоб ідентифікатори сортувалися за часом | 1ec9414c-232a-6b00-b3c8-9f6bdeced846 |
| v7 | Мілісекунди Unix + випадкові біти, сортується | 017f22e2-79b0-7cc3-98c4-dc0c0c07398f |
| v8 | Власна структура, яку визначає застосунок | 2489e9ad-2ee2-8e00-8ec9-32d5f69181c0 |
Що таке UUID і як його читати
UUID (універсальний унікальний ідентифікатор, у програмному забезпеченні Microsoft його називають GUID) — це 128-бітне число, записане як 32 шістнадцяткові цифри групами 8-4-4-4-12, наприклад f47ac10b-58cc-4372-a567-0e02b2c3d479. Його стандартизовано в RFC 4122 у 2005 році; у травні 2024 року цей документ замінив RFC 9562, який зберігає старі версії й додає три нові. Дві позиції фіксовані: перша цифра третьої групи — це версія (4 у 4372), а перша цифра четвертої групи показує варіант: для кожного UUID, що відповідає RFC, це 8, 9, a або b.
Версія 4 заповнює решту 122 біти випадковими даними. Цей простір настільки великий, що для 50% імовірності одного дублікату довелося б згенерувати близько 2,7 квінтильйона (2,7 × 10¹⁸) ідентифікаторів, тому системи створюють v4 ID незалежно на багатьох машинах без координації. Ця сторінка використовує crypto.randomUUID, а якщо його немає — crypto.getRandomValues, і ніколи Math.random, результат якого не призначений бути непередбачуваним. Параметри Великі літери та Без дефісів змінюють лише форматування; значення те саме, і більшість парсерів приймають будь-який регістр.
v4, v7 та інші версії
Версії 1 і 6 будуються з позначки часу та ідентифікатора вузла, спочатку це була MAC-адреса комп’ютера, що розкриває, де і коли створено ID. Версії 3 і 5 хешують простір імен та ім’я за допомогою MD5 або SHA-1, тож той самий вхід завжди дає той самий UUID. Версія 8 — вільна структура для власних схем. Найважливіша новинка — версія 7: вона починається з 48-бітної позначки часу Unix у мілісекундах, а решту заповнює випадковими бітами, тому ID сортуються за часом створення.
Саме через це впорядкування варто розглянути v7 для первинних ключів бази даних. Випадкові ключі v4 потрапляють у різні місця індексу B-tree, розщеплюють сторінки й погіршують локальність кешу в міру зростання таблиці, а ключі v7 надходять у приблизно зростаючому порядку, як стовпець з автоінкрементом, але їх усе одно можна генерувати без центрального лічильника. Обирайте v4, коли потрібен ID, що нічого не розкриває, зокрема часу створення; обирайте v7, коли важливі швидкість вставки та впорядкування за часом. UUID — це ідентифікатор, а не секрет: для паролів і секретів API використовуйте окремий генератор паролів. Більше кодувальників та інспекторів — у інструментах для розробників.
Поширені запитання
- Чи можуть два випадково згенеровані UUID збігтися?
- Теоретично так, на практиці ні. Зі 122 випадковими бітами навіть мільярд UUID v4 на секунду протягом близько 86 років дасть лише приблизно 50% імовірності однієї колізії, якщо джерело випадковості надійне.
- Чим UUID відрізняється від GUID?
- По суті жодної. GUID — це назва Microsoft для того самого 128-бітного ідентифікатора. Деякі інструменти Microsoft показують GUID у верхньому регістрі або у фігурних дужках, і перевірка тут це приймає.
- Як дізнатися версію UUID?
- Подивіться на першу цифру третьої групи: 4 — випадковий, 7 — впорядкований за часом, 1 — позначка часу плюс вузол. Вставте його в перевірку UUID, щоб побачити версію та варіант.
- Чи варто використовувати UUIDv7 замість v4 для ключів бази даних?
- Часто так. Ключі v7 упорядковані за часом, що зберігає індекси B-tree компактними, а вставки швидкими. Залишайтеся на v4, якщо час створення, закодований у v7 ID, має лишитися приватним.
- Чи безпечно використовувати UUID як токен для скидання пароля?
- UUID v4 із безпечного генератора має 122 випадкові біти, цього досить, щоб його не можна було вгадати, але багато бібліотек пропонують окремі функції токенів з явним терміном дії. Ніколи не використовуйте версії на основі часу, як-от v1 або v7, як секрети.