Как пользоваться
- Выберите тип ID. UUID v4 — вариант по умолчанию; для ключей в базе данных выберите v7 или ULID.
- Укажите количество и формат — верхний регистр, дефисы, фигурные скобки или длину Nano ID.
- Скопируйте список или скачайте его текстовым файлом. Нажмите «Сгенерировать», чтобы получить новую партию.
- Чтобы проверить существующий ID, вставьте его в поле «Проверить ID».
Описание параметров
- UUID v4
- 122 случайных бита. Поддерживается всеми базами данных и языками; самый распространённый выбор.
- UUID v7
- Описан в RFC 9562 (2024). Первые 48 бит — метка времени Unix в миллисекундах, поэтому новые ID сортируются после старых. Благодаря этому индексы B-tree остаются компактными, а вставки в PostgreSQL и MySQL — быстрыми.
- ULID
- 26 символов Crockford Base32 — 48-битная метка времени плюс 80 случайных бит. Сортируется, безопасен для URL и не зависит от регистра.
- Nano ID
- Короткие случайные ID из 64-символьного алфавита, безопасного для URL. 21 символ даёт примерно такую же устойчивость к коллизиям, как UUID v4.
Форматы кратко
| Тип | Пример | Длина | Сортируется |
|---|---|---|---|
| UUID v4 | 9b2e4c1a-7f3d-4e8b-a1c2-5d6e7f8091a2 |
36 | Нет |
| UUID v7 | 0199855e-7a40-7c3b-9e1f-2a3b4c5d6e7f |
36 | Да |
| ULID | 01K5JQ8H2G7R4T6W9X3Y5Z7A1B |
26 | Да |
| Nano ID | V1StGXR8_Z5jdHi6B-myT |
21 | Нет |
Генерация UUID в коде
- JavaScript:
crypto.randomUUID()(v4) - Python:
uuid.uuid4(), а начиная с Python 3.14 —uuid.uuid7() - PostgreSQL:
gen_random_uuid()(v4), а начиная с PostgreSQL 18 —uuidv7() - Java:
UUID.randomUUID()(v4)
Часто задаваемые вопросы
Могут ли два сгенерированных UUID совпасть?
На практике нет. При 122 случайных битах нужно сгенерировать около 2,7 × 10¹⁸ UUID v4, прежде чем вероятность хотя бы одного повтора достигнет 50%.
Что выбрать для первичного ключа — UUID v4 или v7?
Для новых таблиц обычно лучше v7. Случайные ключи v4 разбросаны по всему индексу, что вызывает разделение страниц и плохое кеширование; ключи v7 поступают по порядку времени, как автоинкремент, но при этом остаются уникальными на разных серверах.
Раскрывает ли UUID v7 время создания записи?
Да, с точностью до миллисекунды. Если время создания — конфиденциальная информация, используйте v4 для ID, которые видны публично.
Достаточно ли эти ID надёжны для токенов?
Случайные части берутся из crypto.getRandomValues, поэтому они непредсказуемы. Для токенов сессии или сброса пароля лучше использовать не менее 128 случайных бит (например, Nano ID из 22 символов), а не UUID v7, у которого часть с меткой времени можно угадать.
GUID — это то же самое, что UUID?
Да. GUID — название Microsoft для того же 128-битного формата; его часто записывают в верхнем регистре в фигурных скобках — такой формат можно выбрать выше.
Конфиденциальность
Этот инструмент работает полностью в браузере. Ваши файлы и текст обрабатываются на вашем устройстве и никогда не загружаются на наши серверы.