UUID: что это за идентификатор и почему он почти не повторяется
550e8400-e29b-41d4-a716-446655440000 — если вы хоть раз открывали настройки сервиса, базу данных или лог, такие строки видели точно. Это UUID (Universally Unique Identifier) — идентификатор, который «гарантированно» уникален: его можно сгенерировать хоть на телефоне, хоть на сервере в другом полушарии — и не бояться, что кто-то создаст такой же.
Как он устроен
Канонический UUID — 32 шестнадцатеричных символа, разбитых дефисами на группы 8-4-4-4-12. Всего это 128 бит информации, но не все случайны: несколько бит занимает версия и вариант стандарта. В самом ходовом формате UUID v4 случайны 122 бита — это около 5,3×10³⁶ возможных значений. Для ощущения масштаба: если бы каждый человек на Земле генерировал миллиард UUID в секунду, коллизия «случайно совпали» всё равно практически невероятна.
Версии: чем они отличаются
- v1 — время и идентификатор машины: детерминированно, но раскажет, когда и где создан;
- v4 — чистая случайность: стандарт де-факто для публичных идентификаторов;
- v5 — хеш от имени: одинаковый вход даёт одинаковый UUID, удобно для стабильных идентификаторов из URL или названий.
Позиция, где «сидит» версия, — первый символ третьей группы: в примере выше это 4 (v4), а «a» в четвёртой группе обозначает вариант стандарта. Теперь вы сможете определять версию на глаз.
Зачем это нужно на практике
Главное преимущество перед «просто счётчиком» — идентификаторы можно создавать без центрального координатора: разные сервисы, офлайн-приложение, скрипт на ноутбуке — каждый сгенерирует свой UUID, и конфликты не возникнут. Поэтому UUID живут в URL документов, в ID транзакций, в имени загруженных файлов, в логах — везде, где нужно надёжно сослаться на «вот эту конкретную сущность».
Сгенерировать пачку UUID можно в генераторе UUID: он выдаёт v4 через криптографический генератор браузера, сразу несколько штук за раз. Если нужны тестовые числа в других системах счисления — рядом есть конвертер систем счисления.