Генератор UUID

Онлайн-генератор UUID (GUID) версий 1, 3, 4, 5, 6 и 7: выберите версию и скопируйте готовый идентификатор.

Автор:

Версия UUID

Что такое UUID

UUID (Universally Unique Identifier, он же GUID) — 128-битный идентификатор, который можно создать на любой машине без обращения к общему серверу и не бояться повторов. Записывают его как 32 шестнадцатеричные цифры, разбитые дефисами на группы 8-4-4-4-12, например 01a0c4a6-1b5b-7167-be98-80bd2d17bc83.

Первая цифра третьей группы — номер версии (здесь 7), первая цифра четвёртой группы — вариант, у обычных UUID это 8, 9, a или b. Формат описывает RFC 9562, который заменил RFC 4122 и добавил версии 6, 7 и 8.

Версии UUID

Частые вопросы

Какую версию UUID выбрать?

Для первичных ключей в базе данных берите v7: значения растут со временем, и индекс не разрастается так, как со случайными v4. Если нужен просто уникальный или непредсказуемый идентификатор без привязки ко времени — v4. Если идентификатор должен вычисляться из имени и одинаково получаться в любой системе — v5. Версии v1 и v6 нужны для совместимости с системами, которые ждут метку времени в старом формате, а v3 — для старых систем, где применяется MD5.

Могут ли два UUID совпасть?

Теоретически да, практически нет. В UUID v4 122 случайных бита: чтобы вероятность хотя бы одного совпадения достигла 50%, нужно создать около 2,7·10¹⁸ значений. У v7 значения различаются по времени, а внутри одной миллисекунды — по счётчику и случайным битам, поэтому подряд созданные UUID не повторяются и возрастают.

Можно ли использовать UUID как токен или пароль?

Только v4, и лишь там, где хватает 122 бит случайности: он создаётся через crypto.getRandomValues и не поддаётся угадыванию. v1, v6 и v7 содержат время создания, а v3 и v5 вычисляются из введённых данных, поэтому как секрет они не подходят. Для паролей лучше воспользоваться генератором паролей.

Почему v3 и v5 всегда дают один и тот же UUID?

Они не случайные, а вычисляются: MD5 (v3) или SHA-1 (v5) от пространства имён и имени. Одинаковая пара «пространство имён + имя» даёт одинаковый результат в любом языке и на любом сервере, поэтому кнопки «Обновить» у этих версий нет. Чтобы получить другой UUID, измените имя или пространство имён.

Другие утилиты