Генератор UUID
Генерируйте случайные UUID (также называемые GUID) стандарта RFC-4122 версии 4 прямо в браузере. Выберите нужное количество, включите верхний регистр или дефисы и мгновенно скопируйте результаты — ничего не загружается.
Параметры
Количество
Верхний регистр
Дефисы
Как пользоваться Генератор UUID
- 1
Задайте количество
Выберите, сколько UUID вам нужно, от 1 до 100, с помощью поля количества или кнопок плюс и минус.
- 2
Выберите формат
Переключите «Прописные» для заглавных шестнадцатеричных букв и переключите «Дефисы», чтобы сохранить или убрать четыре дефиса в каждом идентификаторе.
- 3
Сгенерируйте идентификаторы
Нажмите «Сгенерировать», чтобы создать криптографически случайные UUID версии 4, каждый из которых перечислен на отдельной строке.
- 4
Скопируйте результаты
Используйте кнопку «Копировать», чтобы скопировать весь список сразу, готовый к вставке в код, базу данных или таблицу.
UUID в деталях: версии, коллизии и когда их применять
Что такое UUID
UUID — Universally Unique Identifier, в мире Microsoft называемый GUID, — это 128-битное значение, спроектированное так, чтобы быть уникальным без какого-либо центрального органа, раздающего номера. Его каноническая текстовая форма состоит из 36 символов: 32 шестнадцатеричные цифры, разделённые на пять групп четырьмя дефисами по схеме 8-4-4-4-12. Эти 128 бит и есть вся идентичность; дефисы и регистр букв — лишь форма представления.
Обещание — это децентрализация. Любая машина в любом месте может создать идентификатор практически без шанса столкнуться с идентификатором, созданным где-то ещё, — вот почему UUID являются ключом по умолчанию, когда независимым системам нужно генерировать идентификаторы, которые позже объединяются без согласования.
Версия 4: случайная по своей сути
Этот генератор создаёт UUID версии 4 — самую распространённую разновидность. UUID v4 почти полностью случаен: из 128 бит несколько зафиксированы для обозначения версии и варианта, оставляя 122 бита чистой случайности. Распознать значение v4 можно по тому, что цифра, открывающая третью группу, всегда равна 4, а цифра, открывающая четвёртую группу, — это одна из 8, 9, a или b.
Поскольку в нём нет встроенной отметки времени или идентификатора машины, UUID v4 ничего не выдаёт о том, когда и где он был создан. Эта конфиденциальность — реальное преимущество перед схемами, которые кодируют MAC-адрес или порядковый номер, и отчасти поэтому v4 стал повседневным выбором по умолчанию для ключей, токенов и идентификаторов записей.
Откуда берётся случайность
Для случайного UUID качество источника случайности — это всё. Этот инструмент использует встроенный в ваш браузер криптографически безопасный генератор — тот же примитив, что применяется для значений, критичных к безопасности, — а не быструю, но предсказуемую псевдослучайную функцию. Это важно, потому что идентификаторы, полученные из слабого генератора, можно угадать или перебрать, превратив идентификатор, который должен был быть неугадываемым, в дыру в безопасности.
При надлежащем криптографическом источнике 122 случайных бита по-настоящему непредсказуемы, поэтому результат пригоден для продакшен-ключей баз данных, ключей идемпотентности и подобных применений. Однако стоит подчеркнуть границу: UUID — это идентификатор, а не секрет. Считайте его достаточно неугадываемым, чтобы его было трудно перебрать, но не полагайтесь на него одного как на токен авторизации.
Почему коллизии не повод для беспокойства на практике
Пространство UUID v4 астрономически велико — 2 в 122-й степени, то есть примерно 5,3 × 10^36 различных значений. Чтобы оценить масштаб: пришлось бы генерировать миллиарды UUID в секунду на протяжении многих десятилетий, прежде чем вероятность хотя бы одной коллизии выросла бы до сколько-нибудь измеримой величины. Для любого реалистичного применения шанс совпадения двух случайно сгенерированных UUID v4 настолько мал, что его считают нулевым.
Именно поэтому можно независимо генерировать идентификаторы на тысячах клиентов и серверов и просто исходить из того, что они не столкнутся, без обращения к центральному сервису для проверки уникальности. Именно эта невероятность и есть нужное свойство: она даёт вам генерацию без согласования ценой того, чего вы никогда не увидите на практике.
Версия 1, версия 7 и сортируемость
Не все UUID случайны. Версия 1 выводит своё значение из текущего времени и сетевого адреса генерирующей машины, что гарантирует уникальность, но зашивает в идентификатор отметку времени и аппаратный идентификатор — проблема конфиденциальности и утечки информации, которая подтолкнула многие команды к v4. Версия 7 — это современный ответ на другую задачу: она помещает миллисекундную отметку времени в старшие биты, за которыми следуют случайные биты.
Благодаря такой компоновке значения v7 сортируются примерно в порядке создания как обычные строки, что даёт реальную пользу для индексов баз данных. Чисто случайные ключи v4 разбросаны по индексу и могут вредить производительности вставки в некоторых движках, тогда как упорядоченные по времени ключи держат недавние вставки сгруппированными. Если вам нужна глобальная уникальность UUID, но при этом нужна хронологическая упорядоченность, стоит обратиться к v7; если же вам принципиально не нужна встроенная отметка времени, правильным выбором остаётся v4.
UUID против автоинкрементных идентификаторов
Классическая альтернатива — автоинкрементное целое число в базе данных. Последовательные целые числа компактны, естественно упорядочены и тривиально эффективны как первичные ключи, но они требуют единого источника истины для выдачи следующего номера и раскрывают информацию: последовательный идентификатор показывает примерно, сколько существует записей, и позволяет злоумышленнику угадать соседние идентификаторы, прибавив единицу. UUID решают обе проблемы — нет центрального счётчика и нет перечислимой последовательности.
Компромиссы работают и в обратную сторону. UUID занимает 16 байт против 4- или 8-байтного целого, его текстовая форма громоздка в URL и логах, а случайный UUID не сортируется. Разумное практическое правило: используйте UUID, когда идентификаторы должны генерироваться клиентами или распределёнными сервисами, должны объединяться между системами или не должны поддаваться угадыванию; придерживайтесь автоинкрементных целых для единой самодостаточной базы данных, где важнее всего компактность и упорядоченность.
Форматирование и пакетная генерация
Каноническая форма — это шестнадцатеричные символы в нижнем регистре с дефисами, и большинство систем её принимают, но соглашения различаются. Этот инструмент позволяет переключиться на буквы верхнего регистра, которые предпочитают некоторые платформы и старый инструментарий Microsoft, и убрать дефисы ради компактной формы из 32 символов, удобной в URL, именах файлов или везде, где дефисы лишь мешают. Лежащее в основе 128-битное значение одинаково независимо от регистра или наличия дефисов, поэтому это исключительно вопрос отображения.
Когда вам нужно много идентификаторов сразу — для наполнения таблицы, генерации тестовых данных, предварительного выделения ключей — можно создать целую партию одним кликом и скопировать весь список целиком, каждый на своей строке. Всё генерируется локально в вашем браузере, и ничего не передаётся и не сохраняется, поэтому даже идентификаторы, привязанные к чувствительным записям, никогда не покидают ваше устройство.
Часто задаваемые вопросы
Какого рода UUID он генерирует?
Как создаются случайные значения?
Сколько UUID можно создать за раз?
Действительно ли сгенерированные UUID уникальны?
Отправляется ли что-либо на сервер?
Похожие инструменты
Продолжайте работу с этими удобными инструментами