Уникальные идентификаторы без центрального сервера
Создаёт случайные идентификаторы UUID v4 с использованием криптографического источника случайности браузера.
UUID позволяет двум системам, никогда не общавшимся между собой, создавать идентификаторы без риска совпадения. Поэтому они и живут в базах данных, очередях сообщений и распределённых логах.
Версия 4 почти полностью случайна — 122 бита случайности. Вероятность совпадения настолько мала, что генерировать пришлось бы миллиарды идентификаторов в секунду в течение века.
Что показывает калькуляторСвежие значения UUID v4, до пятидесяти за раз Стандартный формат 8-4-4-4-12 Верхний регистр, если этого требует система Что важно учитыватьИспользуется crypto.randomUUID, если браузер его поддерживает. Цифра версии всегда 4, а вариант — 8, 9, a или b: это требование стандарта. Частые вопросыМогут ли два UUID совпасть? Теоретически да, практически нет. При 2¹²² вариантов понадобилось бы генерировать миллиард в секунду около 85 лет, чтобы получить хотя бы 50% шанс одного совпадения.
Стоит ли использовать UUID как первичный ключ? Для распределённых систем это отличное решение. Минус — случайные значения разбрасывают записи по индексу, из-за чего появилась версия UUID v7 с временным префиксом.
Чем UUID отличается от GUID? Технически ничем. GUID — название того же 128-битного стандарта, принятое в Microsoft.
Можно ли использовать их как токены безопасности? Версия 4 использует криптографический источник, поэтому предугадать значение нельзя. Но для аутентификации всё же лучше подходят специализированные сессионные токены.
Мини-пример расчёта Строение UUID v4
Входные данные: Один сгенерированный идентификатор
Результат: f47ac10b-58cc-4372-a567-0e02b2c3d479
Комментарий: Четвёрка в начале третьей группы обозначает версию, буква a в четвёртой — вариант. Всё остальное случайно.