Инструмент
Генератор UUID v4 и v7
Создаёт случайные UUID версии 4 и упорядоченные по времени UUID версии 7. Разбирает готовый UUID и показывает версию и время создания.
Работает в браузере, данные никуда не отправляются
v4 или v7
UUID v4 — 122 случайных бита. Вероятность совпадения ничтожна: чтобы с шансом 50% получить хотя бы одну пару одинаковых, нужно около 2,7·1018 идентификаторов.
UUID v7 (RFC 9562, 2024 год) начинается с 48 бит времени в миллисекундах от 1 января 1970 года, дальше идут случайные биты. Такие UUID растут со временем, поэтому новые записи попадают в конец индекса B-дерева, а не в случайное место. Для первичного ключа в PostgreSQL или MySQL это заметно уменьшает разрастание индекса и число записей на диск.
Минус v7: из идентификатора видно время создания записи. Если это нежелательно, например для публичных ссылок, используйте v4.
Устройство
| Часть | v4 | v7 |
|---|---|---|
| биты 0–47 | случайные | время Unix в миллисекундах |
| биты 48–51 | версия 0100 | версия 0111 |
| биты 52–63 | случайные | случайные (или счётчик для порядка внутри миллисекунды) |
| биты 64–65 | вариант 10 | вариант 10 |
| остальные 62 бита | случайные | случайные |
Поэтому 13-й символ UUID — это версия (4 или 7), а 17-й — один из 8 9 a b.
Случайные биты берутся из crypto.getRandomValues — криптографического генератора браузера. Внутри одной миллисекунды v7 из этого инструмента идут строго по возрастанию: младшие 12 бит после версии работают как счётчик.