Генератор и Декодер UUID / GUID
Генерация случайных UUID v4, сортируемых по времени UUID v7 (RFC 9562), детерминированных v3/v5 и офлайн UUID для Minecraft. Мгновенный декодер структуры UUID, целочисленных значений и NBT int-array.
Случайный — стандартный выбор для большинства систем
Обзор всех версий UUID (RFC 4122 и RFC 9562)
UUID (Universally Unique Identifier) — это 128-битный идентификатор. Формат RFC определяет 8 стандартизированных версий, отличающихся алгоритмом заполнения битов.
UUID v1
Формируется из 60-битного счетчика времени с шагом 100 наносекунд с григорианской эпохи (1582 г.), счетчика тактов (clock sequence) и 48-битного MAC-адреса устройства.
UUID v3 & v5
Детерминированные UUID на основе хеша от пространства имен и строки. v3 использует MD5, а v5 — более криптостойкий SHA-1. Одинаковый вход всегда дает один и тот же результат.
UUID v4
Полностью псевдослучайный идентификатор. Из 128 бит 6 зарезервированы под версию и вариант, а остальные 122 бита генерируются криптографически стойким генератором (CSPRNG).
UUID v7 (RFC 9562)
Новейший стандарт RFC 9562 (2024). Первые 48 бит — время Unix Epoch в миллисекундах, за которым следуют случайные биты. Идеально ложится в B-Tree индексы СУБД (PostgreSQL, MySQL, SQLite).
UUID v6
Полевая модификация v1, где биты времени переставлены от старших к младшим для монотонной сортировки в старых системах.
UUID v8
Зарезервированная спецификация RFC 9562 для кастомных/экспериментальных форматов разработчиков при сохранении битов версии и варианта.
Как устроен UUID в Minecraft
В Minecraft Java Edition лицензионные игроки получают UUID v4 от серверов авторизации Mojang. На офлайн/пиратских серверах UUID вычисляется через детерминированный UUID v3 от строки 'OfflinePlayer:<Никнейм>'. В механике игры (команды, NBT-теги сущностей с версии 1.16+) UUID представляется в виде массива четырех 32-битных знаковых целых чисел: [I; int1, int2, int3, int4].
Часто задаваемые вопросы (FAQ)
В чем разница между UUID v4 и UUID v7? ↓
UUID v4 полностью случаен, из-за чего вставка таких ключей в индексы баз данных вызывает фрагментацию B-Tree страниц и замедление дискового ввода-вывода. UUID v7 начинается со стандартной 48-битной метки времени Unix в миллисекундах, благодаря чему записи сортируются хронологически естественным образом, сохраняя при этом защиту от коллизий.
Какова вероятность коллизии UUID v4? ↓
Для UUID v4 вероятность генерации двух одинаковых значений составляет 1 к 2¹²² (примерно 5.3 × 10³⁶). Даже при непрерывной генерации 1 миллиарда UUID в секунду в течение 100 лет вероятность совпадения пренебрежимо мала.
Что означает NBT Int Array [I; ...] в Minecraft? ↓
Начиная с версии 1.16, игра разделяет 128-битный UUID на четыре 32-битных знаковых целых числа. Это позволяет быстрее индексировать сущности в коде движка и удобно хранить их в сжатом формате NBT.
Что такое Single Integer Value в выводе декодера? ↓
UUID представляет собой ровно 16 байт (128 бит). Если прочитать эти 128 бит как одно беззнаковое целое число в big-endian порядке, получается гигантское число до 2¹²⁸ - 1 (BigInt), которое поддерживают многие математические и бинарные протоколы.
Безопасен ли UUID v1 для конфиденциальности? ↓
В классическом стандарте v1 использовался реальный MAC-адрес сетевой карты, что позволяло отследить конкретный компьютер в сети. В современных реализациях (включая наш генератор) вместо аппаратного MAC-адреса генерируются криптографически случайные байты с установленным флагом локального multicast.
Все операции выполняются локально в браузере.