Что такое UUID?
UUID (Universally Unique Identifier — универсальный уникальный идентификатор), который также называют GUID, — это 128-битное значение, позволяющее однозначно помечать данные в компьютерных системах без какого-либо центрального координатора. Этот инструмент создаёт UUID версии 4, которые формируются практически полностью из случайных чисел. При 122 случайных битах вероятность того, что два сгенерированных идентификатора совпадут, настолько ничтожна, что на практике их считают глобально уникальными. Это универсальный стандарт, не зависящий от языка программирования (RFC 4122).
Как пользоваться генератором
Укажите, сколько идентификаторов вам нужно (от 1 до 50), выберите нижний или верхний регистр и решите, оставлять ли стандартные дефисы. Нажмите «Рассчитать» и скопируйте результат. UUID удобно использовать в качестве первичных ключей в базах данных, идентификаторов API-запросов, имён файлов, сессионных токенов и меток в распределённых системах — везде, где нельзя полагаться на автоинкрементный счётчик.
Разбор формата
UUID версии 4 записывается в виде 32 шестнадцатеричных цифр, разбитых на пять групп через дефис по схеме 8-4-4-4-12, например xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx. Цифра 4 указывает на версию. Цифра y кодирует вариант и должна быть одной из значений 8, 9, a или b. Каждый из остальных символов x — это случайная шестнадцатеричная цифра.
Пример на практике
Возьмём случайную шестнадцатеричную строку, например 3f9a7c1e b204 1d88 9c33 a7f019be24c1. Чтобы превратить её в корректный UUID версии 4, мы принудительно задаём 13-й цифре значение 4, а 17-й — цифру варианта. В результате получается, к примеру, 3f9a7c1e-b204-4d88-9c33-a7f019be24c1. Обратите внимание на цифру 4 после второго дефиса и на 9 (одно из допустимых значений варианта) после третьего.
Частые вопросы
Являются ли эти UUID криптографически стойкими? Они формируются с помощью псевдослучайного источника платформы и отлично подходят для идентификаторов, однако для защищённых секретов лучше использовать специализированный криптографический генератор случайных чисел.
Могут ли два UUID оказаться одинаковыми? Теоретически да, но вероятность пренебрежимо мала: чтобы получить реальный шанс на совпадение, пришлось бы генерировать миллиарды идентификаторов в секунду на протяжении многих лет.
Меняет ли удаление дефисов само значение? Нет. Дефисы носят чисто визуальный характер — лежащие в основе 128 бит остаются неизменными.