Генератор UUID
Создайте случайный UUID v4 или упорядоченный по времени UUID v7, один или сразу до 10 000. Здесь же можно сгенерировать GUID онлайн: GUID — такое же 128-битное значение. Вставьте UUID, чтобы разобрать его по полям.
Цветная цифра — это версия: первая цифра третьей группы в любом UUID.
Создаётся и читается в вашем браузере через crypto.getRandomValues; ничего не отправляется.
Что такое UUID и как расшифровывается UUID?
UUID расшифровывается как Universally Unique Identifier, «универсальный уникальный идентификатор»: 128-битная метка, которую любой компьютер может создать сам и при этом рассчитывать, что ни один другой компьютер не создаст такую же. Её записывают как 32 шестнадцатеричные цифры в пяти группах, например 919108f7-52d1-4320-9bac-f847db4148a8.
Формат определяет RFC 9562 (май 2024 года), который заменил RFC 4122 и добавил версии 6, 7 и 8. Никакой центральный реестр не выдаёт UUID: уникальность обеспечивает случайность, метка времени или хеш имени — в зависимости от версии.
Базы данных используют UUID как первичные ключи, API — как идентификаторы запросов и объектов, операционные системы — для дисков, разделов и программных компонентов. GUID (Globally Unique Identifier, «глобально уникальный идентификатор») — это название Microsoft для того же самого.
UniversallyUniqueIDentifier
- 128 бит
- 16 байт
- 32 шестнадцатеричные цифры
- 36 символов с дефисами
919108f7-52d1-4320-9bac-f847db4148a8
GUIDНазвание Microsoft для того же значения

Выберите версиюСлучайный v4, упорядоченный по времени v7, v5 на основе имени и остальные — у каждой версии свой цвет.Один щелчокСкопируйте UUID или создайте новый; пакет до 10 000 штук выгружается как текст, CSV, JSON или SQL.Каждое полеБиты, которые RFC 9562 определяет для этой версии, и расшифрованное время, которое несёт v7.Любой форматФигурные скобки, без дефисов, верхний регистр, Base64url, целое число или порядок байтов .NET.Формат и длина UUID: 36 символов
UUID — это 128 бит, записанные как 32 шестнадцатеричные цифры и 4 дефиса группами по 8, 4, 4, 4 и 12: всего 36 символов. Первая цифра третьей группы — это версия, а первая цифра четвёртой группы показывает вариант: 8, 9, a или b у UUID по RFC 9562.
Так, 017f22e2-79b0-7cc3-98c4-dc0c0c07398f — это версия 7, вариант RFC. Допустимы верхний, нижний и смешанный регистр; большинство инструментов выводят строчные буквы, а uuidgen в macOS — заглавные. Без дефисов это 32 символа, в фигурных скобках — 38 (формат B в .NET), в виде urn:uuid: — 45, а в Base64url — 22.
Регулярное выражение, которое проверяет форму по RFC: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ с флагом нечувствительности к регистру. Оно отвергает Nil UUID и Max UUID, которые корректны, но особые; декодер выше называет их.
32 шестнадцатеричные цифры + 4 дефиса = 36 символов
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxxM версия: 1–8N вариант: 8, 9, a или b^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$- Стандартный36
- Без дефисов32
- Фигурные скобки {…}38
- urn:uuid:45
- Base64url22
- Base6424
- Base5821
- Base3226
- Целое числодо 39
- Двоичный вид16 байт
Версии UUID: от v1 до v8
Версия говорит, как создан UUID: v4 — из случайных битов, v7 — из времени и случайных битов, v1 и v6 — из метки времени и идентификатора узла, v3 и v5 — хешированием имени, а v8 — по собственной структуре создателя.
Версии 2 и 0 здесь не создаются: v2 (DCE Security) зарезервирована, и RFC 9562 не определяет её структуру, а 0 — вообще не версия. У двух специальных значений версии нет: Nil UUID состоит из одних нулей, а Max UUID — из одних единиц (ffffffff-ffff-ffff-ffff-ffffffffffff, новинка RFC 9562).
Для новых систем RFC 9562 рекомендует v7 вместо v1 и v6 и v5 вместо v3. v4 остаётся простым выбором, когда значение не должно ничего говорить о времени своего создания.
- время
- случайные
- хеш
- последовательность часов
- узел
- версия
- вариант
UUID v4 или v7: что выбрать?
Используйте v7 для ключей базы данных и всего, что вы сортируете или индексируете: он начинается со времени создания, поэтому новые строки попадают в конец индекса. Используйте v4, когда идентификатор не должен выдавать время своего создания: все 122 его свободных бита случайны.
Случайные ключи v4 разбрасывают вставки по всему индексу B-tree, из-за чего страницы разделяются, а в памяти приходится держать большую часть индекса; ключи v7 приходят по порядку, как автоинкрементное число, но любой сервер может создавать их, не обращаясь к базе данных. У v7 на каждую миллисекунду приходится 74 случайных бита, так что два сервера, создавшие UUID в один и тот же момент, всё равно не получат совпадения.
Цена: любой, кто видит v7, может прочитать миллисекунду его создания (вставьте такой UUID в декодер выше). Если это важно, используйте v4 или держите v7 внутри системы, а наружу показывайте другой идентификатор.
c100eb4b-4f3f-4b29-ad77-da7cd9d1eda592c97333-2db8-4fc2-b5b6-cedd8c7abede01a16d3e-e1c0-70f6-99ec-6d454991b2fa01a16d3e-e1c0-70f6-99ec-6d45c2f6b35b- уже в индексе
- свободно
- новый v4
- новый v7
- разделение страницы: половина её ключей переходит на новую страницу
GUID и UUID: есть ли разница?
GUID и UUID — одно и то же 128-битное значение в одной и той же текстовой форме; GUID — это название Microsoft. Guid.NewGuid() в .NET создаёт случайный UUID версии 4, а Guid.CreateVersion7() в .NET 9 — UUID версии 7.
Разница — в памяти. Структура GUID в Microsoft хранит первые три группы как целые числа в порядке little-endian, поэтому ToByteArray() в .NET выдаёт первые 8 байтов в другом порядке, чем сетевой порядок байтов RFC 9562: 919108f7-52d1-… превращается в байты f7 08 91 91 d1 52 …. Текст тот же, но сырые байты при передаче между системами нужно преобразовывать. Декодер показывает оба порядка.
Тип uniqueidentifier в SQL Server к тому же сортирует сначала по последним шести байтам, поэтому значения v7 там не остаются в порядке времени; NEWSEQUENTIALID() создаёт значения, которые остаются, но после перезапуска они могут снова начаться с меньших значений, и их легко угадать. Старые GUID из COM могут нести собственные биты варианта Microsoft вместо битов RFC 9562; декодер называет этот вариант.
919108f7-52d1-4320-9bac-f847db4148a8- Data1 · 4 байта, в обратном порядке
- Data2 · в обратном порядке
- Data3 · в обратном порядке
- Data4 · как есть
Как сгенерировать UUID в коде
Большинство языков создают UUID v4 одной строкой, а многие теперь умеют и v7: uuid.uuid7() в Python 3.14, Guid.CreateVersion7() в .NET 9, UUID.ofEpochMillis() в Java 26, uuid.NewV7() в Go 1.27, crypto.randomUUIDv7() в Node.js 26.1 и uuidv7() в PostgreSQL 18. В браузерах по-прежнему есть только crypto.randomUUID(), то есть v4.
Выберите свой язык, чтобы увидеть однострочник. Не каждый v7 сохраняет порядок UUID, созданных в одну и ту же миллисекунду: в Python и Go сохраняет, а в .NET и Node это не гарантируется. А UUID() в MySQL возвращает UUID версии 1, который в Linux и Windows содержит настоящий MAC-адрес сервера.
Встроенные функции UUID по языкам
import uuid
uuid.uuid4() # v4
uuid.uuid7() # v7, Python 3.14+
uuid.uuid5(uuid.NAMESPACE_DNS, "www.example.com") # v5
uuid7() ведёт 42-битный счётчик, поэтому UUID одной миллисекунды остаются по порядку.
Могут ли два UUID совпасть?
В теории да, на практике нет: у UUID v4 122 случайных бита, это около 5,3 × 10³⁶ значений. Чтобы вероятность совпадения хотя бы двух из них достигла одной миллиардной, нужно создать около 103 триллионов UUID, а для шансов 50 на 50 — около 2,7 квинтиллиона.
Это граница парадокса дней рождения: при n случайных значениях из N вероятность повтора примерно равна 1 − e^(−n(n−1)/2N). Если создавать миллиард UUID в секунду, на 50-процентную вероятность ушло бы около 86 лет. Настоящие дубликаты возникают из-за сломанных генераторов: неслучайного начального значения, виртуальной машины, клонированной вместе со своим случайным состоянием, или идентификаторов, скопированных вручную.
У v7 совпасть могут только UUID, созданные в одну и ту же миллисекунду, а их различают 74 случайных бита. Генератор на этой странице к тому же сохраняет порядок пакета внутри одной миллисекунды (RFC 9562 §6.2), поэтому 10 000 UUID, созданных сразу, уникальны и отсортированы.
При миллиарде в секунду на создание такого количества уйдёт 1 секунда.
Декодер UUID: как прочитать метку времени UUID
Вставьте UUID на вкладке «Декодирование и проверка» — это декодер и валидатор UUID выше: он читает версию и вариант из двух фиксированных мест, а затем поля, которые определяет эта версия. v7 даёт миллисекунду своего создания, а v1 или v6 — время с точностью до 100 наносекунд, последовательность часов и идентификатор узла.
Узел v1 или v6 со сброшенным битом multicast может быть настоящим MAC-адресом сетевой карты; найдите её производителя через поиск по MAC-адресу. Генераторы, которые берегут приватность, устанавливают этот бит и используют случайный узел, как и этот генератор.
Время — это то, что записал генератор, а не доказательство того, когда UUID был создан. v4 не содержит времени, только случайные биты, а v3, v5 и v8 содержат хеши: прочитать из них нечего, а хеш нельзя обратить в имя. Вставьте список, чтобы проверить до 1 000 UUID сразу: некорректные строки, дубликаты и идут ли UUID на основе времени по порядку.
017f22e2-79b0-7cc3-98c4-dc0c0c07398f- unix_ts_ms
0x017f22e279b0 - мс с 1970 года
1 645 557 742 000 - UTC
2022-02-22T19:22:22.000Z
c232ab00-9414-11ec-b3c8-9f6bdeced846- time_high · time_mid · time_low
1ec 9414 c232ab00 - шаги по 100 нс с 1582-10-15
138 648 505 420 000 000 - UTC
2022-02-22T19:22:22.0000000Z
Один и тот же момент: примеры из RFC 9562 созданы одновременно.
UUID на основе имени: v5 и v3
UUID v5 — это хеш SHA-1 от UUID пространства имён и имени, обрезанный до 128 бит, с установленными версией и вариантом; v3 делает то же самое с MD5. Одни и те же пространство имён и имя всегда дают один и тот же UUID на любом компьютере: выберите v5 выше, чтобы использовать эту страницу как генератор UUID v5.
RFC 9562 определяет четыре пространства имён: DNS для доменных имён, URL, OID и X.500. Поэтому www.example.com в пространстве имён DNS всегда даёт 2ed6657d-e927-568b-95e1-2665a8aea6a2 как v5. Используйте UUID на основе имени, чтобы дать стабильный идентификатор тому, у чего уже есть уникальное имя, не храня таблицу соответствий.
Выбирайте v5, а не v3: MD5 слабее, и RFC 9562 рекомендует v5. Ни тот, ни другой не скрывают имя: любой, кто может его угадать, вычислит тот же UUID. Вариант v8 здесь использует SHA-256 тем же способом, как в собственном примере v8 из RFC.
- Пространство имён
6ba7b810-9dad-11d1-80b4-00c04fd430c8DNS · 16 байт - Имя
"www.example.com"UTF-8 · 15 байт - Дайджест SHA-1, 160 бит
2ed6657de927468b55e12665a8aea6a22dee3e35сохраняются первые 128 бит - Итоговый UUID
2ed6657d-e927-568b-95e1-2665a8aea6a2цифра версии 4 → 5 · цифра варианта 5 → 9
- DNS
6ba7b810… - URL
6ba7b811… - OID
6ba7b812… - X.500
6ba7b814…
ULID и UUID v7 (и другие идентификаторы)
ULID и UUID v7 оба начинаются с 48-битной метки времени в миллисекундах и сортируются по времени. Разница: ULID отдаёт все остальные 80 бит под случайность и записывается 26 символами Base32, а v7 тратит 6 бит на версию и вариант и подходит для любого столбца и любой библиотеки UUID.
Если ваша база данных, ORM или API уже работают с UUID, v7 даёт порядок по времени без нового типа. NanoID и похожие короткие идентификаторы — это случайные строки выбранной длины, без времени и без стандартной структуры. Любой UUID можно записать и короче: 22 символа в Base64url, не больше 22 в Base58.
- миллисекунды с 1970 года
- случайные
- версия и вариант
Безопасно ли использовать UUID как токены?
Нет. RFC 9562 говорит, что не стоит считать UUID трудноугадываемыми и никогда не следует использовать UUID как средство доступа (security capability): идентификатор, само владение которым даёт доступ, например ссылку для сброса пароля или ключ API.
UUID v4 из хорошего генератора случаен, но v1, v6 или v7 выдаёт время создания, а v3 или v5 можно вычислить заново по имени. Для секретов используйте токен, предназначенный для этого, например 256 случайных бит из криптографического генератора, и проверяйте права при каждом запросе. UUID подходят как публичные идентификаторы, когда доступ проверяется отдельно.
Генератор UUID: вопросы и ответы
Как сгенерировать UUID?
crypto.randomUUID() в JavaScript, uuid.uuid4() в Python и Guid.NewGuid() в C# создают v4 одной строкой.Как расшифровывается UUID?
GUID — это то же самое, что UUID?
Какую версию UUID выбрать?
Могут ли два UUID когда-нибудь совпасть?
Можно ли декодировать UUID?
Какова длина UUID?
Что такое пустой GUID или Nil UUID?
Сортируется ли UUID v7 по времени?
Безопасно ли использовать UUID как пароль или токен доступа?
Отправляются ли куда-нибудь UUID, созданные здесь?
Чего-то не хватает?Предложите функцию или новый инструмент
Похожие инструменты
Генератор паролей
Надёжные случайные пароли, парольные фразы и PIN-коды в вашем браузере, с точными битами и временем взлома
Поиск MAC адреса
Определение производителя устройства по MAC адресу через базу IEEE
Калькулятор подсетей
Сеть, широковещательный адрес, доступные хосты и маски для любого блока IPv4 или IPv6, а также VLSM, разбиение и облачные подсети
Невидимый символ
Копирование невидимого символа и пустого пробела, поиск и удаление скрытых символов в тексте