Какво е версия на 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 времеви маркер (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, за да извлече две ключови полета:

  1. Версия: Прочита се от 13-тата шестнадесетична цифра (индекс 12 в изчистения шестнадесетичен string). Този полубайт директно кодира номера на версията (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 времеви маркер Unix ms времеви маркер + случаен, идеален за ключове в БД
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? Този инструмент идентифицира само версията и варианта. За да извлечете вградени времеви маркери от v1, v6 или v7 UUID, използвайте специализирания инструмент UUID Time Extractor.