Формат UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / 8-4-4-4-12
Алгоритм: MD5 хеширование.
Детерминированный: Да. Одинаковое имя + namespace = одинаковый UUID.
Использование: Когда нужен стабильный UUID для конкретного ресурса.
Структура: xxxxxxxx-xxxx-3xxx-yxxx-xxxxxxxxxxxx
3 — версия (v3)
Пример: f47ac10b-58cc-3b12-a345-426614174000
Алгоритм: Случайные байты (random).
Детерминированный: Нет — каждый вызов уникален.
Использование: Наиболее распространённая версия для генерации уникальных идентификаторов без привязки к данным.
Структура: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
4 — версия (v4)
Пример: f47ac10b-58cc-4b12-a345-426614174000
Алгоритм: SHA-1 хеширование.
Детерминированный: Да — одинаковое имя + namespace = одинаковый UUID.
Использование: Подходит для генерации уникальных идентификаторов на основе имени ресурса, как v3, но с более надёжным хешем.
Структура: xxxxxxxx-xxxx-5xxx-yxxx-xxxxxxxxxxxx
5 — версия (v5)
Пример: f47ac10b-58cc-5b12-a345-426614174000
Алгоритм: Временной + случайные байты.
Детерминированный: Частично — первые 48 бит = метка времени, остальное случайное.
Использование: Для сортируемых по времени UUID; хорошо подходит для баз данных и распределённых систем.
Структура: xxxxxxxx-xxxx-7xxx-yxxx-xxxxxxxxxxxx
7 — версия (v7)
Первые 48 бит = метка времени в миллисекундах с эпохи Unix.
Остальные биты — случайные/счётчик.
Пример: 0183f7f4-4b0b-7f12-8c3d-0a1b2c3d4e5f
Всегда: 8-4-4-4-12 (символов в шестнадцатеричном представлении)
Пример: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / 8-4-4-4-12
Версия указывается в старших 4 битах третьей группы.
Вариант (10xx) указывается в старших битах четвёртой группы.
UUID (Universally Unique Identifier) - это уникальный идентификатор, который используется для идентификации объектов в различных системах. Он состоит из 128 бит (16 байт) и имеет формат “8-4-4-4-12”. Это означает, что первые 8 бит являются случайными, следующие 4 бита называются “версия”, следующие 4 бита - “классовая часть”, а последние 4 бита являются “сериальной частью”. Классовая часть и сериальная часть используются для определения типа объекта и его порядкового номера.
UUID используется в различных областях IT, например для идентификации ресурсов, таких как домены, IP-адреса, URL-адреса и т.д. В некоторых случаях UUID может использоваться для идентификации устройств, например, в системах контроля доступа или в системах управления устройствами.
Одним из преимуществ UUID является его уникальность. Каждый UUID уникален и не может быть повторен, что делает его идеальным для использования в качестве идентификатора для различных объектов. Кроме того, UUID легко запоминается и может быть легко передан или скопирован между различными системами.
Однако, у UUID есть и некоторые недостатки. Например, он может быть слишком длинным для некоторых приложений, что может привести к проблемам с хранением и передачей данных. Также, UUID не является надежным способом для идентификации объектов, если они имеют одинаковые классовую и сериальную части.