Разработчика

Генератор UUID

Нужен UUID для ключа базы данных, токена API или тестового фикстура? Генерируйте UUID v4 по одному или пакетно — до 100 за раз — и копируйте их прямо в буфер обмена.

Этот инструмент вам помог?

Что такое Генератор UUID?

Генератор UUID (Универсальный уникальный идентификатор) создаёт случайные UUID версии 4 — 128-битные идентификаторы, которые являются практически уникальными во всех системах мира. Каждый UUID следует стандартному формату 8-4-4-4-12 (36 символов с дефисами), что обеспечивает удобство чтения, хранения и передачи. Цифра версии (позиция 13) всегда равна 4, а цифра варианта (позиция 17) всегда равна 8, 9, A или B, что гарантирует полное соответствие RFC 4122. Создавайте от 1 до 100 UUID за раз для первичных ключей баз данных, токенов API, идентификаторов сессий, тестовых данных или любого приложения, которому необходимы гарантированно уникальные идентификаторы без координации с центральным органом.

Когда использовать этот калькулятор

  • Вам нужен уникальный идентификатор для первичного ключа базы данных в распределённой системе
  • Вы создаёте идентификаторы ресурсов API, которые должны быть глобально уникальными без центрального органа
  • Вам нужны тестовые фикстуры с уникальными ID для модульных или интеграционных тестов
  • Вы создаёте систему управления сессиями, требующую генерации уникальных токенов
  • Вам нужно сгенерировать несколько уникальных идентификаторов пакетно для миграции или импорта данных
  • Вы хотите проверить, что UUID, который у вас уже есть, действителен и правильно отформатирован

Шаги:

  1. Выберите, сколько UUID сгенерировать (1-100).
  2. Нажмите кнопку «Сгенерировать UUID».
  3. Скопируйте отдельные UUID или используйте «Копировать все».
  4. Включите автокопирование для автоматического копирования при генерации.

Формула

Формат UUID v4: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx Где x — случайная шестнадцатеричная цифра, а y — одна из 8, 9, A или B (вариант RFC 4122). Всего комбинаций: ~5,3 × 10^36

Варианты использования

  • Первичные ключи баз данных для распределённых систем
  • Идентификаторы ресурсов API
  • Токены сессий пользователей
  • ID заказов и транзакций

Основные преимущества

  • Создавайте 1–100 UUID мгновенно одним нажатием
  • Копируйте отдельные или пакетные UUID в буфер обмена одним нажатием
  • Режим автокопирования для бесперебойной интеграции в рабочий процесс разработки
  • Полностью бесплатно без регистрации, учётной записи или подключения к серверу
  • Генерация на стороне клиента гарантирует, что ваши UUID никогда не покинут ваш браузер
  • Универсально совместимый формат (RFC 4122) работает со всеми основными базами данных и фреймворками

Советы профессионалов

  • Используйте UUID v4 для универсальных уникальных идентификаторов, где хронологическая сортировка не требуется
  • Храните UUID как binary(16) в базах данных вместо строк, чтобы сэкономить 50% места и улучшить производительность индексов
  • Используйте UUID v7 или ULID, если вам нужны уникальные идентификаторы, отсортированные по времени
  • Никогда не создавайте UUID на стороне клиента для критически важных с приложений безопасности — используйте CSPRNG на стороне сервера
  • При миграции с автоинкрементных ID добавьте столбец UUID рядом с существующим целочисленным столбцом, чтобы избежать сбоев

Распространенные ошибки

  • Использование автоинкрементных ID вместо UUID в распределённых системах, где узлы генерируют ID независимо
  • Предполагать, что UUID сортируются по времени — стандартные UUID v4 случайны; используйте UUID v7 или ULID для хронологически отсортированных идентификаторов
  • Хранить UUID как 36-символьные строки вместо 16-байтных двоичных, тратя на 55% больше места и ухудшая производительность индексов
  • Полагаться на клиентский Math.random() для безопасной генерации UUID — он не криптографически стойкий

Объяснение ключевых терминов

UUID: Универсальный уникальный идентификатор — 128-битный идентификатор, стандартизированный RFC 4122
UUID v4: Случайный UUID версии 4 — наиболее часто используемая версия, генерируемая из 122 случайных бит
GUID: Глобально уникальный идентификатор — реализация стандарта UUID компанией Microsoft, функционально идентичный
RFC 4122: Документ стандартизации IETF, определяющий формат UUID, версии и структуру поля варианта
CSPRNG: Криптографически стойкий генератор псевдослучайных чисел — необходим для генерации UUID в контекстах безопасности

Связанные понятия

  • UUID версии 4: UUID, сгенерированный полностью из случайных битов, с полем версии, установленным в 0100 (4), и битами варианта, установленными согласно RFC 4122
  • GUID (Globally Unique Identifier): Реализация Microsoft стандарта UUID, функционально идентичная UUID v4
  • RFC 4122: Документ стандартизации, определяющий формат UUID, версии и поле варианта для структуры UUID
  • Коллизия: Чрезвычайно редкое событие, когда два независимо сгенерированных UUID идентичны — для UUID v4 вероятность составляет примерно 1 из 5,3×10^36
  • UUID v7: Более новая версия UUID, которая кодирует временную метку Unix в наиболее значимых битах, делая UUID упорядоченными по времени и сортируемыми, оставаясь при этом уникальными

Пример

Сгенерированный UUID: 550e8400-e29b-41d4-a716-446655440000 — стандартный UUID v4 с 4 на позиции 13, указывающей версию 4, и «a» на позиции 17, указывающей вариант RFC 4122.

Интерпретация результатов

Генератор создаёт UUID версии 4, которые являются 128-битными случайными идентификаторами, следующими стандартному шестнадцатеричному формату 8-4-4-4-12 (36 символов, включая дефисы). Версия 4 означает, что все биты, кроме индикаторов версии и варианта, случайны, обеспечивая максимально возможную уникальность без координации между системами. Сгенерированный UUID имеет специфические структурные маркеры: 13-й символ всегда 4 (указывает версию 4), а 17-й символ всегда 8, 9, A или B (указывает вариант RFC 4122). Эти маркеры отличают UUID v4 от других версий и обеспечивают соответствие стандарту. Используйте функцию автокопирования, когда вам нужно генерировать UUID по одному во время разработки — каждый UUID копируется в буфер обмена немедленно при генерации. Используйте «Копировать все», когда вам нужен пакет UUID для массовой операции. Пакетная генерация выполняется полностью в вашем браузере без связи с сервером.

Часто задаваемые вопросы

Что такое UUID?
UUID (Universally Unique Identifier) — это 128-битный идентификатор, стандартизированный RFC 4122. UUID версии 4 генерируются случайным образом и практически гарантированно уникальны между системами.
Насколько уникальны UUID?
Чрезвычайно уникальны. Существует 5,3×10^36 возможных UUID v4. Вероятность коллизии настолько мала, что вы могли бы генерировать 1 миллиард UUID в секунду в течение 100 лет и всё ещё иметь риск коллизии, близкий к нулю.
Для чего используются UUID?
UUID используются в качестве первичных ключей баз данных, идентификаторов ресурсов API, токенов сессий, идентификаторов транзакций и везде, где нужны уникальные идентификаторы без центрального органа.
В чём разница между UUID и GUID?
GUID (Globally Unique Identifier) — это реализация Microsoft стандарта UUID. Они функционально идентичны и взаимозаменяемы.
Действительно ли UUID гарантированно уникальны?
Ни один стандарт UUID не гарантирует абсолютную уникальность — но вероятность коллизии с UUID v4 настолько астрономически мала (1 из 5,3×10^36), что считается практически невозможной. Для справки, вам нужно генерировать 1 миллиард UUID в секунду в течение 100 лет, чтобы достичь даже 50% вероятности коллизии.
Следует ли использовать UUID или автоинкрементные целые числа для первичных ключей?
UUID лучше подходят для распределённых систем, поскольку они могут генерироваться независимо на любом узле без координации. Целые числа проще и меньше, что делает их лучше для приложений с одной базой данных, где важна последовательная упорядоченность. UUID также не раскрывают информацию об объёме ваших данных (последовательный ID 5 000 сообщает атакующему, что у вас 5 000 записей).
Могу ли я сортировать UUID хронологически?
Стандартные UUID v4 случайны и не могут быть отсортированы по времени. UUID v7 (доступен в более новых библиотеках) кодирует временную метку в наиболее значимых битах, делая его сортируемым по времени. Если вам нужны уникальные ID, упорядоченные по времени, рассмотрите UUID v7 или ULID в качестве альтернатив v4.
В чём разница между хранением UUID как строк и как бинарных данных?
Строки используют 36 символов (36 байт), тогда как бинарные данные используют 16 байт. Бинарное хранение более эффективно как для пространства хранения, так и для производительности индексов. Большинство баз данных поддерживают специфические для UUID типы столбцов, которые автоматически обрабатывают бинарное преобразование. Используйте binary(16) в MySQL или нативный тип uuid в PostgreSQL.
Почему 13-й символ всегда '4' в UUID v4?
13-й символ занимает биты 48-51 UUID, которые кодируют номер версии. Для версии 4 эти биты установлены в 0100, что является шестнадцатеричной цифрой 4. Так любой считыватель UUID идентифицирует UUID как версию 4 (случайную).
Безопасно ли генерировать UUID на стороне клиента?
Для не критичных для безопасности целей, да. Для критичных для безопасности приложений (токены сессий, ключи API, токены сброса пароля) используйте криптографически безопасный генератор случайных чисел на стороне сервера. Math.random() на основе браузера не является криптографически безопасным, хотя crypto.getRandomValues() современных браузеров приемлем для большинства целей.
Сколько UUID я могу сгенерировать за раз?
Этот генератор поддерживает до 100 UUID за пакет. Для больших пакетов вы можете запустить генератор несколько раз или использовать серверный скрипт с библиотекой UUID. Генерация полностью происходит на стороне клиента без сетевых запросов, поэтому пакеты завершаются практически мгновенно.

Откройте больше инструментов

Свежая подборка из всей нашей библиотеки инструментов.