ГлавнаяИнструментыГенератор UUID

Генератор UUID

Создаёт идентификаторы двух версий. Четвёртая — привычная случайная, 122 бита случайности; такой идентификатор ни на что не намекает и ни с чем не связан. Седьмая устроена иначе: первые 48 битов — это отметка времени в миллисекундах, поэтому идентификаторы сортируются по порядку создания. Для первичного ключа в базе это принципиально: случайные v4 ложатся в индекс вразнобой и заставляют его постоянно перестраиваться, а упорядоченные v7 дописываются в конец. Случайность берётся у криптографического модуля браузера, тем же способом, что и для ключей шифрования. Вторая вкладка разбирает готовый идентификатор: показывает версию, вариант и, если это v7, восстанавливает дату создания.

До тысячи за раз.
Дефисы, скобки, приставка urn:uuid: и регистр значения не имеют.

Как пользоваться

  1. Четвёртая для общего случая, седьмая для ключей в базе.
  2. От одного до тысячи за раз.
  3. С дефисами, без них, в верхнем регистре, в скобках или как URN.
  4. Вторая вкладка показывает версию и дату создания для v7.

Частые вопросы

Идут ли идентификаторы v7 строго по возрастанию

В этом инструменте да. Одной отметки времени для этого мало: пачка из полусотни создаётся внутри одной миллисекунды, метка у всех совпадает, а остальные биты случайны — и порядок внутри миллисекунды получается произвольным. Стандарт RFC 9562 разрешает занять под счётчик двенадцать битов сразу за меткой времени, что здесь и сделано. Поэтому пачка любого размера идёт строго по возрастанию, и в индексе базы она ляжет подряд.

Чем UUID версии 7 лучше версии 4 для базы данных

Порядком. В v7 первые 48 битов — это время создания в миллисекундах, поэтому новые идентификаторы всегда больше старых. Когда такой ключ становится первичным, записи ложатся в конец индекса подряд. У случайного v4 каждая новая запись попадает в произвольное место дерева, страницы индекса дробятся, кэш перестаёт работать, и на больших таблицах вставка заметно замедляется. При этом v7 остаётся полноценным UUID и годится везде, где принимается обычный.

Раскрывает ли UUID v7 что-нибудь лишнее

Да, время создания: из идентификатора восстанавливается момент с точностью до миллисекунды. Если по идентификатору в адресе строки не должно быть понятно, когда объект создан, берите v4. Порядковость v7 работает в обе стороны: она полезна базе и она же выдаёт хронологию наружу.

Какова вероятность совпадения двух UUID

Пренебрежимо мала. В v4 случайных битов 122, то есть возможных значений порядка пяти на десять в тридцать шестой степени. Чтобы вероятность хотя бы одного совпадения дошла до одного процента, нужно сгенерировать около трёх на десять в семнадцатой степени идентификаторов. На практике совпадения случаются по другой причине — из-за плохого источника случайности, поэтому здесь используется криптографический модуль браузера.

Что означают версия и вариант

Версия — способ построения: 1 по времени и MAC-адресу, 4 случайный, 5 по хешу имени, 7 по времени и случайности. Она записана в первом знаке третьей группы. Вариант отвечает за раскладку битов и почти всегда равен единице по RFC 4122; он записан в первом знаке четвёртой группы, и у корректных идентификаторов там стоит 8, 9, a или b. Инструмент показывает оба поля при разборе.

Чем отличаются форматы записи

Только оформлением, значение одно и то же. Канонический вид — 36 знаков с дефисами. Без дефисов получается 32 знака, так UUID хранят в полях фиксированной длины. Фигурные скобки достались от систем Microsoft. Запись с приставкой urn:uuid: используется там, где нужен полноценный идентификатор ресурса. Регистр значения не имеет, но RFC 4122 предписывает выводить в нижнем.

Можно ли использовать UUID в адресе страницы

Можно, и это обычная практика для внутренних разделов: идентификатор не выдаёт ни порядковый номер записи, ни их общее количество, в отличие от числового id. Для публичных страниц, которые должны индексироваться, лучше человекочитаемый адрес: UUID в ссылке никому ни о чём не говорит и не помогает ни человеку, ни поиску.

Насколько это случайно

Случайность даёт crypto.getRandomValues — тот же источник, что применяется для криптографических ключей. Если его в браузере нет, генерация останавливается с сообщением: подставлять вместо него Math.random было бы опасно, потому что его последовательность предсказуема.

Данные куда-то отправляются

Нет, всё создаётся в браузере.

Похожие инструменты

Генератор случайных чисел

Число или список до тысячи значений в диапазоне: режим без повторов, сортировка. Отдельно вытягивает жребий из списка имён.

Открыть
Проверка надёжности пароля

Стойкость в битах, время перебора и разбор слабых мест: словарные слова под заменой символов, клавиатурные ряды, годы и повторы.

Открыть
Генератор паролей

Пароль длиной до 64 символов с выбором наборов и отсевом похожих знаков. Показывает стойкость в битах и время перебора, делает до 50 паролей пачкой.

Открыть
Колесо фортуны

Случайный выбор из своего списка: вес секторов пометкой «×3», режим на выбывание и ссылка, по которой открывается то же колесо.

Открыть
Генератор тестовых данных

Пачка вымышленных записей для тестов: ФИО, телефон, ИНН, СНИЛС, ОГРН, счёт и карта — с настоящими контрольными разрядами. Выгрузка в CSV, JSON и SQL.

Открыть
Генератор CSS-градиентов

Линейный, радиальный и конический градиент с живым предпросмотром. Любое число цветовых точек, угол и позиции, разбор чужого кода обратно в точки.

Открыть

Ещё инструменты для SEO и маркетинга

Кластеризатор запросов, генераторы sitemap и robots.txt, минус-слова, разметка Schema.org и калькуляторы — в разделе инструментов.