Работает полностью в браузере — данные не покидают страницу.
UUID / ULID генератор
Случайные UUID v4, монотонные UUID v7 и ULID — генерация пачками с опциями форматирования.
RFC 9562 UUID v4 · crypto.getRandomValues
Как выбрать между v4, v7 и ULID
Все три — 128-битные идентификаторы, которые можно генерировать ни с чем не согласовываясь. Разница в упорядоченности: v4 полностью случаен, а v7 и ULID помещают миллисекундную метку времени в старшие биты, поэтому созданные идентификаторы сортируются по времени создания.
Эта упорядоченность не косметическая. Случайные первичные ключи разбрасывают записи по B-дереву индекса, упорядоченные по времени — дописывают в конец, ради чего v7 и появился.
Что брать для первичного ключа в базе?
Почти всегда v7. Он сохраняет свойства уникальности v4, но пишет в горячий конец индекса вместо случайной страницы, что видно как меньшая амплификация записи и меньший рабочий набор на любой растущей таблице.
Чем UUID v7 отличается от ULID?
Это одна идея в двух кодировках. ULID — 26 символов Crockford base32: короче, регистронезависим, приятен в URL. v7 — стандартный UUID, поэтому его уже принимают все типы баз и библиотеки. Берите ULID ради читаемости, v7 ради совместимости.
Не утекает ли информация через v7?
Он раскрывает время создания записи с точностью до миллисекунды. Обычно безвредно, иногда нет: для публичного угадываемого идентификатора, где время создания чувствительно, v4 раскрывает меньше.
Могут ли два таких идентификатора совпасть?
На практике нет. В v4 122 случайных бита, в ULID 80 на миллисекунду; вероятность настолько мала, что отказ оборудования — более реалистичная проблема.
Смежные инструменты: Timestamp, Генератор паролей и Base64.