Что такое версия UUID?

UUID (Universally Unique Identifier) — это 128-битный идентификатор, стандартизированный в RFC 4122 и RFC 9562. Каждый UUID содержит поле версии, указывающее способ его генерации. Версия кодируется в 13-м шестнадцатеричном символе (старший полубайт 7-го байта) и определяет алгоритм и источники данных, использованные при создании идентификатора.

В настоящее время определены восемь версий (v1–v8), а также две специальные формы: Nil UUID (все нули) и Max UUID (все единицы). Каждая версия служит своей цели — одни встраивают временные метки для хронологической сортировки, другие используют криптографические хэши для детерминированной генерации, третьи опираются на случайные числа ради простоты. Знание версии помогает понять свойства, последствия для безопасности и предназначение конкретного UUID.

Поле варианта, кодируемое отдельно, определяет, какой спецификации UUID соответствует идентификатор. Большинство современных UUID используют вариант RFC 4122/RFC 9562, однако устаревшие системы могут генерировать варианты NCS или Microsoft.

Описание инструмента

Этот инструмент принимает любой UUID в качестве входных данных и определяет его номер версии, название версии, вариант, метод генерации и подробное описание принципа работы данной версии. Поддерживаются все стандартные версии (v1–v8), а также Nil и Max UUID. Просто вставьте UUID и мгновенно получите его полную расшифровку.

Примеры

Входной UUID Версия Название
550e8400-e29b-41d4-a716-446655440000 4 Случайный (v4)
6ba7b810-9dad-11d1-80b4-00c04fd430c8 1 На основе времени (v1)
018f3e88-5c00-7b3a-8512-2d4a3f8e9c01 7 На основе Unix Epoch Time (v7)
00000000-0000-0000-0000-000000000000 Nil Nil UUID
ffffffff-ffff-ffff-ffff-ffffffffffff Max Max UUID

Возможности

  • Определяет все версии UUID от v1 до v8, а также Nil и Max UUID
  • Идентифицирует вариант (RFC 4122/9562, NCS, Microsoft или Reserved)
  • Отображает понятное описание, объясняющее принцип генерации данной версии
  • Показывает метод генерации, использованный для создания UUID
  • Мгновенная идентификация в реальном времени по мере ввода или вставки

Сценарии использования

  • Отладка распределённых систем: определите, являются ли UUID в ваших логах временными (v1/v6/v7) или случайными (v4), чтобы понять, содержат ли они встроенные временные метки, которые можно извлечь.
  • Оптимизация баз данных: выясните, используют ли ваши первичные ключи сортируемую версию UUID (v6, v7) или случайную (v4), которая может вызывать фрагментацию индексов.
  • Аудит безопасности: обнаруживайте UUID v1, которые могут раскрывать MAC-адреса или временные метки, помогая оценить риски утечки информации.

Принцип работы

Инструмент анализирует шестнадцатеричную структуру UUID для извлечения двух ключевых полей:

  1. Версия: считывается из 13-го шестнадцатеричного символа (индекс 12 в строке без разделителей). Этот полубайт напрямую кодирует номер версии (1–8). Nil и Max UUID определяются проверкой того, равны ли все биты нулю или единице соответственно.
  2. Вариант: определяется по старшим битам 17-го шестнадцатеричного символа (индекс 16). Битовая маска соответствует одному из четырёх семейств вариантов: NCS, RFC 4122/9562, Microsoft или Reserved.

Версии UUID: краткий обзор

Версия Название Ключевое свойство
v1 На основе времени Временная метка + MAC-адрес
v2 DCE Security Временная метка + MAC + POSIX UID/GID
v3 На основе имени (MD5) Детерминированный из пространства имён + имени
v4 Случайный 122 случайных бита
v5 На основе имени (SHA-1) Детерминированный, более надёжный хэш, чем v3
v6 Переупорядоченный временной Сортируемый вариант v1
v7 На основе Unix Epoch Time Unix-временная метка в мс + случайные данные, идеален для ключей БД
v8 Пользовательский Специфичный для поставщика или экспериментальный
Nil Nil UUID Все 128 бит установлены в ноль
Max Max UUID Все 128 бит установлены в единицу

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

В чём разница между версией и вариантом UUID? Версия указывает на алгоритм генерации (временной, случайный, на основе хэша и т. д.), тогда как вариант определяет, какой спецификации соответствует UUID (RFC 4122, NCS, Microsoft). Большинство встречающихся UUID относятся к варианту RFC 4122/9562.

Какую версию UUID следует использовать? Для большинства приложений v4 (случайный) является наиболее простым и широко поддерживаемым вариантом. Если вам нужны сортируемые по времени идентификаторы для первичных ключей базы данных, v7 является современной рекомендацией. Используйте v5, когда требуются детерминированные UUID, производные от имени.

Может ли этот инструмент извлечь временную метку из UUID? Данный инструмент определяет только версию и вариант. Для извлечения встроенных временных меток из UUID v1, v6 или v7 используйте специализированный инструмент UUID Time Extractor.