Генератор UUID

Генератор UUID v4/v7, ULID и Nano ID для тестовых данных: 1–100 идентификаторов, копирование и проверка формы, версии и времени создания.

Генерация идентификаторов

Тип идентификатора
Формат вывода

    Проверка UUID и ULID

    UUID — 36 символов: hex-группы 8-4-4-4-12 через дефисы. ULID — 26 символов Crockford Base32 без I, L, O, U. Регистр не важен. Проверка структуры не доказывает уникальность или случайность. Nano ID проверять нечем: случайные символы без структуры.

    Последние генерации

    В истории — сводка «сколько идентификаторов сгенерировано», сами значения не сохраняются: сгенерированный UUID пользователю может понадобиться в заметках, а запись переживала бы вкладку на диске. Количество восстанавливается кнопкой «В закладки» у генератора.

    Как это работает

    Случайные байты создаёт Web Crypto (crypto.getRandomValues) — для всех четырёх типов. У UUID v4 поверх байтов ставятся версия 4 и RFC-вариант 10xx — остаются 122 случайных бита. У UUID v7 старшие 48 бит — текущее unix-время в миллисекундах, поверх него версия 7 и вариант 10xx, остальные 74 бита случайны: такие UUID сортируются по времени создания.

    ULID — тот же принцип, но кодировка Crockford Base32: 48 бит времени + 80 бит случайности в 26 символах, без I, L, O, U (их путают с 1, 1, 0, V при чтении глазами). В пределах одной миллисекунды случайная часть следующего ULID растёт на 1 — список остаётся отсортированным даже внутри одной мс. Nano ID — 21 символ из A-Za-z0-9_- (URL-safe, ~126 бит): компактный случайный идентификатор без времени, когда сортировка не нужна.

    Валидатор принимает UUID и ULID: показывает форму, вариант и версию UUID, у v7 и у ULID расшифровывает метку времени создания. Устаревшие варианты NCS/Microsoft и зарезервированные значения UUID отмечаются отдельно. Nano ID проверять нечем — в нём нет структуры, только алфавит.

    Данные остаются только в памяти вкладки; перезагрузка очищает их. Копирование доступно через буфер обмена браузера, без файлов.

    Что это и как пользоваться

    Генератор выдаёт от 1 до 100 идентификаторов за раз в одном из четырёх форматов: UUID v4, UUID v7, ULID и Nano ID. Переключатели меняют запись — верхний регистр и вариант без дефисов, — а не сам идентификатор.

    Разница между форматами практическая: v4 полностью случаен, v7 ставит метку времени в старшие биты и поэтому сортируется по времени создания, ULID делает то же в компактном Crockford-base32, а Nano ID просто короче при той же случайности.

    Второй блок проверяет чужое значение: распознаёт UUID версий 1–8, Nil и Max, ULID и Nano ID, показывает версию и вариант, а для v7 и ULID извлекает время создания — по нему видно, когда запись появилась.

    Nil и Max формально валидны, но как идентификатор записи почти всегда означают ошибку, поэтому показываются отдельно от обычных значений.

    Всё считается во вкладке: идентификаторы не резервируются и никуда не отправляются.

    Когда пригодится

    • Сгенерировать пачку id для фикстур и моков, не поднимая базу.
    • Проверить, что строка из лога — валидный UUID нужной версии, а не похожая на него случайность.
    • Узнать время создания записи по v7-идентификатору, когда в базе нет отдельного поля с датой.
    • Сравнить форматы по длине и сортируемости, прежде чем выбрать один для схемы.
    • Сгенерировать v7 вместо v4, когда важно, чтобы новые записи шли в конце индекса и не раздували его вставками в середину.

    Чего инструмент не делает

    • Уникальность не гарантируется абсолютно: коллизия маловероятна, но проверять её должна ваша система, а не генератор.
    • Монотонность v7 не гарантируется: два идентификатора подряд могут оказаться в обратном порядке, если часы шагнули назад.
    • Сгенерированные значения не сохраняются: после перезагрузки страницы их не восстановить.
    • Проверка формы не подтверждает существование записи: валидный UUID может не соответствовать ни одной строке в базе.
    • ULID и UUID проверяются разными правилами: строка, валидная как ULID, не пройдёт проверку UUID, и наоборот.

    Примеры

    Вход
                        сгенерировать 5 UUID v4
                      
    Выход
                        пять случайных идентификаторов вида 3f2b9c1e-…
                      
    Вход
                        проверка ULID 01ARZ3NDEKTSV4RRFFQ69G5FAV
                      
    Выход
                        валиден, время создания — 2016 год