Перейти к основному содержимому
FreeOnlineTools Go
Русский
Объяснение

Что такое UUID? Полное объяснение универсально уникальных идентификаторов

Автор: FreeOnlineTools Team · Обновлено 2026-09-02

Быстрый ответ

UUID — 128-bit идентификатор, представленный как 36 символов (32 hex-цифры плюс 4 дефиса). UUID практически уникальны без координации —вероятность коллизии незначительна. UUID v4 (random) — наиболее распространённая версия. Используйте наш бесплатный UUID Generator.

Введение

UUID (Universally Unique Identifier), также GUID (Globally Unique Identifier) в терминологии Microsoft, — 128-bit идентификатор, практически гарантированно уникальный без центральной координации. UUID определены RFC 4122 и широко используются как primary key баз данных, request ID, session token и идентификаторы распределённых систем. Наиболее распространённая версия — UUID v4 со случайными битами.

Шаг за шагом

  1. Понять структуру UUID

    UUID — это 128 бит, отображаемых в виде 32 шестнадцатеричных цифр в 5 группах: 8-4-4-4-12, разделенных дефисами (например, 550e8400-e29b-41d4-a716-446655440000). 13-я цифра указывает версию (4 для v4), а 17-я цифра указывает вариант.

  2. Изучите версии UUID

    v1: на основе времени (метка времени + MAC-адрес) — упорядочено по времени, но теряет идентичность. v3: на основе имени с хешированием MD5. v4: случайный — наиболее распространенный, без проблем с конфиденциальностью. v5: на основе имени с хешированием SHA-1. v6 и v7: упорядочены по времени с улучшенной конфиденциальностью по сравнению с v1.

  3. Понять вероятность столкновения

    UUID v4 имеет 2^122 возможных значения. Вероятность коллизии среди 103 триллионов UUID составляет 50%. Для практического использования (миллионы идентификаторов) вероятность коллизии фактически равна нулю — вы можете генерировать UUID самостоятельно, без координации.

  4. Используйте UUID правильно

    Используйте версию 4 практически для всех случаев использования (идентификаторы баз данных, идентификаторы запросов, токены сеансов). Используйте версию 7, если вам нужны упорядоченные по времени идентификаторы для локальности базы данных. Избегайте v1 в контекстах, чувствительных к безопасности — он включает метку времени и MAC-адрес.

Примеры

UUID v4 (случайно)

Вход: Создано с помощью crypto.getRandomValues

Выход: 550e8400-e29b-41d4-a716-446655440000

UUID v1 (по времени)

Вход: Временная метка + MAC-адрес

Выход: a3bbf0ee-d6e4-11ed-a5b3-3c9703e8b4a1

Ноль UUID

Вход: All zeros

Выход: 00000000-0000-0000-0000-000000000000

Распространенные проблемы

  • Использование Math.random() для UUID — это не криптографически безопасно. Используйте crypto.getRandomValues() или crypto.randomUUID() в браузерах.
  • Хранение UUID в виде строк: длина строки UUID составляет 36 байт; храниться как тип UUID (16 байт), это более эффективно. Используйте собственный тип UUID в базах данных, если он доступен.
  • Использование версии 1 в контекстах, чувствительных к безопасности: версия 1 включает метку времени и MAC-адрес, из-за чего может произойти утечка информации о том, когда и где она была создана. Используйте v4 для анонимности.
  • Предполагая, что UUID действительно уникальны — они практически уникальны (вероятность столкновения незначительна), но их уникальность не гарантируется математически.

Советы

  • Используйте UUID v4 почти для всех случаев использования — он случайный, не имеет проблем с конфиденциальностью и поддерживается всеми современными базами данных.
  • Используйте crypto.randomUUID() в современных браузерах для встроенного генератора v4 без библиотеки.
  • Храните UUID как тип UUID/GUID в базах данных (16 байт) вместо строк (36 байт) для повышения производительности хранения и индексирования.
  • Используйте наш генератор UUID для мгновенного создания UUID в вашем браузере — без регистрации, полностью конфиденциально.

Сопутствующие инструменты

Связанные руководства

Ссылки