Генератор UUID
Генерируйте от одного до 100 случайных UUID версии 4 прямо в браузере. Выберите нужное количество, переключайтесь между верхним и нижним регистром шестнадцатеричных цифр и копируйте результаты с дефисами или без них.
Генератор UUID (v4)
Формула UUID v4
Где:
- \(x\) — случайная шестнадцатеричная цифра (0–9, a–f), всего 122 случайных бита
- \(4\) — фиксированный полубайт версии, указывающий, что это UUID версии 4
- \(y\) — цифра варианта, ограниченная значениями 8, 9, a (A) или b (B)
UUID версии 4 строится из 128 случайных битов. Шесть из них не случайны: четыре бита кодируют версию (0100, то есть цифру 4), а два бита — вариант (10); именно поэтому 13-я шестнадцатеричная цифра всегда равна 4, а 17-я — всегда 8, 9, a или b. Остаётся \(122\) случайных битов, что даёт \(2^{122} \approx 5.3 \times 10^{36}\) возможных значений.
Генератор UUID — пример расчёта
Пример: сгенерируйте 5 UUID с настройками по умолчанию (Версия: v4, отмечен флажок верхнего регистра, дефисы сохранены). Типичный результат выглядит так:
\[ \\text{9F86D081-884C-4D15-9CE2-A1B2C3D4E5F6} \]
Обратите внимание на две фиксированные позиции: первая цифра третьей группы — 4 (версия), а первая цифра четвёртой группы — одна из 8, 9, A, B (вариант). Все остальные шестнадцатеричные символы случайны.
Результат: список из 5 UUID, по одному на строку, готовый к копированию — все они разные, но каждый соответствует структуре версии 4 стандарта RFC 4122.
Как пользоваться калькулятором
- Введите Количество UUID, которое вам нужно (любое значение от 1 до 100).
- Оставьте параметр Версия в значении v4 (случайная) — этот инструмент генерирует случайные идентификаторы версии 4.
- Отметьте или снимите флажок Верхний регистр (A–F) в зависимости от того, предпочитаете ли вы вывод в стиле
4F2Aили4f2a. Оба варианта корректны: шестнадцатеричная система нечувствительна к регистру. - Отметьте Удалить дефисы, если хотите получать каждый UUID в виде простой строки из 32 символов (полезно для столбцов баз данных или кода, где дефисы нежелательны).
- Нажмите кнопку расчёта. В списке UUID отображается по одному идентификатору на строку, чтобы их было удобно копировать, а счётчик Сгенерировано подтверждает, сколько их создано.
Что такое UUID?
UUID (Universally Unique Identifier — универсальный уникальный идентификатор), в системах Windows также называемый GUID (Globally Unique Identifier — глобальный уникальный идентификатор), — это 128-битный идентификатор, спроектированный так, чтобы быть уникальным без какого-либо централизованного координирования. В отличие от автоинкрементных идентификаторов в базах данных, UUID можно генерировать независимо на разных серверах, устройствах или автономных клиентах, и коллизии практически невозможны: при 122 случайных битах на значение пришлось бы сгенерировать миллиарды UUID, прежде чем вероятность появления хотя бы одного дубликата стала бы заметной.
UUID записывается в виде 32 шестнадцатеричных цифр, сгруппированных по схеме 8-4-4-4-12 и разделённых дефисами, например 550e8400-e29b-41d4-a716-446655440000. Существует несколько версий. Версия 1 содержит метку времени и MAC-адрес машины; версии 3 и 5 получают идентификатор из имени с помощью хеширования MD5 или SHA-1; версия 4, которую создаёт этот инструмент, целиком строится из случайных чисел. Именно версия 4 сегодня используется шире всего, потому что она не раскрывает, когда и где идентификатор был создан.
Результат интерпретируется так: любая строка, соответствующая шаблону 8-4-4-4-12, с цифрой 4 в позиции версии и 8, 9, a или b в позиции варианта, является корректным UUID v4. Его можно напрямую использовать как первичный ключ, компонент API-токена, имя файла, идентификатор запроса или любой другой идентификатор, который никогда не должен повторяться.
Практические советы и ограничения
- Качество случайности: генератор использует API
crypto.getRandomValues()вашего браузера — криптографически стойкий источник случайных чисел. ОбычныйMath.random()не используется, за исключением очень старых браузеров. - Всё локально: UUID генерируются на вашем устройстве и никогда не отправляются на сервер, поэтому их безопасно использовать в чувствительных целях.
- Регистр не имеет значения:
9F86...и9f86...— один и тот же UUID. Выберите регистр, соответствующий стилю вашего проекта — во многих системах их хранят в нижнем регистре. - Это не пароль: UUID случаен, но его 122 бита структурированы для уникальности, а не для стойкости пароля. Для секретов используйте специальный генератор паролей.
- Это не хеш: UUID идентифицирует, но не проверяет. Если вам нужен неизменный «отпечаток» данных, подойдёт хеш SHA-256 или хеш MD5 — одинаковые входные данные всегда дают одинаковый хеш, тогда как этот генератор каждый раз выдаёт новое значение.
- Поддержка версий: сейчас поддерживается только версия 4; временные (v1) и основанные на имени (v3, v5) UUID здесь создать нельзя.
Поля версии и варианта UUID вкратце
| Позиция в UUID | Значение | Смысл |
|---|---|---|
| Цифра 13 (первая цифра 3-й группы) | 4 | Версия 4 — сгенерирован случайным образом |
| Цифра 17 (первая цифра 4-й группы) | 8, 9, a, b | Вариант 10xx — стандартная структура RFC 4122 |
| Все остальные цифры | 0–9, a–f | Полностью случайны |
Если вместе с идентификаторами вам также нужно кодировать или передавать данные, вам поможет кодировщик Base64.
Часто задаваемые вопросы
Как сгенерировать UUID v4 вручную или в собственном коде?
Возьмите 16 случайных байтов (128 бит), затем перезапишите два полубайта: установите старший полубайт 7-го байта (при отсчёте с 1) в 0100 для версии, а два старших бита 9-го байта — в 10 для варианта. Запишите байты в шестнадцатеричном виде с группировкой 8-4-4-4-12. В коде в большинстве языков есть встроенные средства, например crypto.randomUUID() в JavaScript или uuid.uuid4() в Python — ручная работа с битами не нужна.
Какова вероятность совпадения двух сгенерированных UUID?
При 122 случайных битах на UUID коллизия астрономически маловероятна при реалистичных объёмах. После генерации 1 миллиарда UUID вероятность появления хоть одного дубликата составляет около 1 к 100 миллиардам; при 103 триллионах UUID она достигает примерно 1 к миллиарду. В повседневных задачах — идентификаторы пользователей, номера заказов, API-ключи — UUID версии 4 можно считать уникальными без какой-либо централизованной проверки.
UUID и GUID — это одно и то же?
На практике — да. GUID (Globally Unique Identifier) — термин Microsoft, используемый в Windows, SQL Server и .NET, тогда как UUID происходит из стандарта RFC 4122. GUID, созданный функцией NEWID() в SQL Server или Guid.NewGuid() в .NET, — это UUID версии 4 того же формата 8-4-4-4-12, так что оба названия обозначают один и тот же идентификатор и взаимозаменяемы.
Почему 13-я цифра каждого UUID всегда 4, а 17-я — всегда 8, 9, a или b?
Эти позиции не случайны — они несут метаданные. 13-я шестнадцатеричная цифра кодирует версию (0100 в двоичном виде = 4), сообщая потребителям, что UUID построен из случайных чисел. 17-я цифра кодирует вариант (двоичное 10xx), что ограничивает её значениями 8, 9, a или b и указывает на стандартный формат RFC 4122 Лича–Сальца. Если любая из этих позиций отличается, строка не является корректным UUID v4.
Как проверить, является ли строка корректным UUID?
Сверьте её с шаблоном из 32 шестнадцатеричных цифр в группировке 8-4-4-4-12. Распространённое регулярное выражение: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ (нечувствительно к регистру). Чтобы проверить именно версию 4, дополнительно требуется 4 в начале третьей группы и 8, 9, a или b в начале четвёртой. Во многих языках есть готовые валидаторы, например uuid.UUID(value) в Python вызывает ошибку на некорректном вводе.
Безопасно ли использовать UUID как первичный ключ в базе данных?
Да, и это популярное решение для распределённых систем, поскольку ключи можно создавать автономно без координации. Есть два компромисса: UUID занимают 16 байт в двоичном столбце (36 символов в текстовом) против 4–8 байт у целого числа, а случайные значения v4 фрагментируют B-tree-индексы, вызывая больше разделений страниц, чем последовательные ключи. По возможности храните их в нативном столбце UUID/binary, а для таблиц с интенсивной записью рассмотрите упорядоченные варианты UUID.
Почему некоторые UUID заключены в фигурные скобки или имеют префикс urn:uuid:?
Это лишь альтернативные текстовые представления, а не другие идентификаторы. Инструменты Microsoft часто выводят GUID как {550e8400-e29b-41d4-a716-446655440000}, а RFC также определяет форму URN: urn:uuid:550e8400-e29b-41d4-a716-446655440000. Скобки, префикс и дефисы — только оформление: удаляйте их перед хранением или сравнением, поскольку лежащие в основе 128 битов одинаковы в любом формате.