Как пользоваться генератором UUID
- Выберите Создать версию 4 для случайных UUID или Создать версию 7 для UUID, которые сортируются по времени создания.
- Укажите Количество (до 1000) и формат: строчные буквы с дефисами, 32 цифры без дефисов, в {фигурных скобках}, как пишут GUID в Windows и .NET, или URN (
urn:uuid:…). Отметьте Заглавные буквы, если ваша система ждёт их. - Нажмите Копировать, чтобы скопировать весь список по одному UUID в строке, или Создать для нового набора.
- Чтобы проверить уже имеющийся UUID, выберите Проверить или разобрать UUID и вставьте его в любом привычном виде. Вы увидите, корректен ли он, его версию и вариант, а для версий 1, 6 и 7 — дату и время создания.
Что такое UUID
UUID (universally unique identifier, в мире Microsoft — GUID) — это 128-битное число, которое записывают 32 шестнадцатеричными цифрами в группах 8, 4, 4, 4 и 12. Создать его может кто угодно без центрального реестра, а вероятность совпадения так мала, что UUID служат ключами в базах данных, API, форматах файлов и операционных системах. Действующий стандарт — RFC 9562 (май 2024), заменивший RFC 4122.
Два места в любом UUID фиксированы. 13-я цифра — версия, она говорит, как получены остальные биты, а 17-я несёт вариант: 8, 9, a или b для UUID по схеме RFC. Поэтому любой UUID версии 4 имеет вид xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, где y — 8, 9, a или b.
| Версия | Из чего состоит | Сортируется по времени |
|---|---|---|
| 1 | Время шагами по 100 нс с 1582 года, последовательность часов и ID узла (часто MAC-адрес) | Нет |
| 3 и 5 | MD5- или SHA-1-хеш пространства имён и имени: одно имя — всегда один UUID | Нет |
| 4 | 122 случайных бита | Нет |
| 6 | Поля версии 1, переставленные так, что время идёт первым | Да |
| 7 | 48-битное Unix-время в миллисекундах, затем 74 случайных бита | Да |
| 8 | Собственная схема программы, которая его создаёт | — |
UUID v4 или v7?
Версия 4 — классический выбор: она полностью случайна и ничего не говорит о том, когда и где создана. Её слабое место — индекс базы данных. Случайные ключи разлетаются по всему B-дереву, каждая вставка попадает на другую страницу, и большие таблицы растут медленнее и фрагментируются. Версия 7 начинается с текущего времени, поэтому новые строки уходят в конец индекса, почти как автоинкремент, и при этом остаются уникальными между серверами, которые ничего друг о друге не знают. RFC 9562 рекомендует версию 7 для новых систем, которым нужны упорядоченные по времени идентификаторы.
Цена — UUID версии 7 выдаёт время своего создания с точностью до миллисекунды. Для большинства записей это безвредно, но если само время секретно — например, в публичной ссылке, по которой не должно быть видно, когда открыт аккаунт, — выбирайте версию 4. В пределах одной миллисекунды этот генератор считает 74 случайных бита счётчиком, растущим на случайный шаг (RFC 9562 §6.2, метод 2), так что пачка из 1000 UUID идёт строго в порядке создания и всё равно непредсказуема.
UUID в PostgreSQL, 1С и других системах
- PostgreSQL хранит UUID в типе
uuid(16 байт). Версию 4 создаётgen_random_uuid()(встроена с PostgreSQL 13), версию 7 —uuidv7()с PostgreSQL 18. Для первичного ключа большой таблицы v7 обычно выгоднее. - MySQL — колонка
BINARY(16)и функцииUUID_TO_BIN()/BIN_TO_UUID(); встроеннаяUUID()выдаёт версию 1. ClickHouse — типUUIDиgenerateUUIDv4(). - 1С:Предприятие использует тип
УникальныйИдентификатор;Новый УникальныйИдентификатор()создаёт случайный UUID, а такие же идентификаторы вы увидите у ссылок на объекты в выгрузках и обменах. - В коде: JavaScript
crypto.randomUUID(); Pythonuuid.uuid4()иuuid.uuid7()с Python 3.14; JavaUUID.randomUUID(); .NETGuid.NewGuid()иGuid.CreateVersion7()с .NET 9; Go — пакетgithub.com/google/uuid. - Регистр: RFC 9562 рекомендует выводить строчные буквы, а сравнивать UUID без учёта регистра. Фигурные скобки — так GUID пишут реестр Windows, COM и
Guid.ToString("B")в .NET.
Пример: дата внутри UUID
Пример UUID версии 7 из RFC 9562 — 017F22E2-79B0-7CC3-98C4-DC0C0C07398F. Его 13-я цифра, 7, — версия; 17-я, 9, означает вариант RFC. Первые 12 цифр, 017F22E279B0, — это 1 645 557 742 000 миллисекунд с 1 января 1970 года, то есть 2022-02-22T19:22:22Z, или 22 февраля 2022 г. в 22:22:22 по московскому времени. Примеры версий 1 и 6 из того же RFC хранят тот же момент как 138 648 505 420 000 000 интервалов по 100 наносекунд с 15 октября 1582 года — первого дня григорианского календаря:
| UUID | Версия | Создан (UTC) |
|---|---|---|
017f22e2-79b0-7cc3-98c4-dc0c0c07398f | Версия 7 | 2022-02-22T19:22:22Z |
c232ab00-9414-11ec-b3c8-9f6bdeced846 | Версия 1 | 2022-02-22T19:22:22Z |
1ec9414c-232a-6b00-b3c8-9f6bdeced846 | Версия 6 | 2022-02-22T19:22:22Z |
В версии 1 время разбито на три куска, младшие биты идут первыми, поэтому такие UUID не сортируются по времени; версия 6 ставит те же биты по порядку.
Насколько вероятен повтор?
В UUID версии 4 — 122 случайных бита, то есть 2122, около 5,3 × 1036 возможных значений. По парадоксу дней рождения, чтобы вероятность хотя бы одного совпадения достигла 50%, нужно примерно 2,7 × 1018 UUID. При скорости миллиард в секунду это около 86 лет работы. Реальные повторы бывают из-за сломанных генераторов случайных чисел — старой библиотеки или виртуальных машин, клонированных с одинаковым состоянием, — а не из-за математики. Эта страница использует crypto.getRandomValues, криптографически стойкий генератор браузера.
Для секрета, а не идентификатора, используйте генератор паролей. UUID создаются в вашем браузере, никуда не отправляются, и страница не хранит их список.
Частые вопросы
Чем UUID отличается от GUID?
На практике ничем. GUID (globally unique identifier) — название того же 128-битного идентификатора у Microsoft. GUID, которые сегодня создают Windows и .NET, — это UUID версии 4; их часто пишут заглавными буквами и в фигурных скобках, например {0F8FAD5B-D9CB-469F-A165-70867728950E}.
Действительно ли UUID v4 уникален?
Гарантии нет, но для любой реальной системы этого достаточно: при 122 случайных битах для 50% шанса единственного повтора нужно около 2,7 × 1018 UUID. Уникальное ограничение на колонку с UUID всё равно стоит поставить — оно ничего не стоит и ловит редкие ошибки генераторов.
Можно ли использовать UUID как пароль или секретный токен?
Лучше не надо. RFC 9562 предупреждает, что не стоит считать UUID трудноугадываемыми, у версии 7 всего 74 случайных бита плюс читаемая метка времени, а некоторые библиотеки берут слабые случайные числа. Для секретов нужен специальный токен, например 32 случайных байта в Base64, или генератор паролей.
Как проверить, что строка — корректный UUID?
Вставьте её в режиме Проверить или разобрать UUID. В коде подойдёт регулярное выражение ^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ без учёта регистра — оно принимает версии 1–8 стандартного варианта; нулевой и максимальный UUID проверяйте отдельно.
Стоит ли делать UUID первичным ключом в PostgreSQL?
Да, если идентификаторы создаются в разных местах — на нескольких серверах, в офлайн-приложениях — или не должны выдавать число записей. Берите версию 7 (uuidv7() в PostgreSQL 18), чтобы индекс оставался компактным, и храните в типе uuid, а не в тексте на 36 символов.
Обновлено: 16 октября 2026 г.