Идентификаторы

Генератор Nano IDТакже CUID, CUID2 и KSUID

Создайте новую партию ID или разберите читаемые поля CUID и KSUID.

Генератор Nano ID

Ввод

Выберите алгоритм и настройки ниже. Каждый явный запуск создаёт новую партию. Изменение настроек лишь помечает прежний результат как устаревший.

Обработка выполняется в этом браузере. Введённые данные не отправляются на сервер.

Результат

Настройки

Партия: 1–1 000 ID; длина NanoID: 1–128, CUID2: 2–32. Свой алфавит: 2–64 разных печатных символа ASCII без пробелов. Разбор: до 128 000 символов и 1 000 ID.

Выберите настройки и запустите обработку.

Генератор Nano ID помогает подготовить короткие ID для ссылок, имён файлов и тестовых записей. Сначала выясните требования принимающей системы: сокращение строки не должно нарушать ожидаемый формат идентификатора.

NanoID допускает пользовательский алфавит. CUID2 скрывает внутренние данные хешированием, а старый CUID сохраняет читаемые поля. KSUID объединяет время с точностью до секунды и случайную полезную нагрузку.

Зачем нужен Генератор Nano ID

Параметры зависят от формата

Генератор Nano ID объединяет четыре алгоритма, сохраняя ограничения каждого. NanoID можно сократить или задать другой алфавит. KSUID остаётся длиной 27 символов: обрезанная строка уже не соответствует его представлению.

Четыре идентификатора показывают случайные символы переменной длины, разделённые старые поля, непрозрачный хеш и время со случайной нагрузкой.

Разбор только существующих полей

Отчёты CUID и KSUID разделяют реально закодированные компоненты. Для NanoID и CUID2 не выдумывается скрытая дата. Даже корректно прочитанное время не доказывает, что событие действительно произошло в этот момент.

Структурированный идентификатор разделяется на часы и случайную нагрузку; рядом показан непрозрачный ID без извлекаемых часов.

Что проверить перед сокращением ID

01

Сопоставьте формат с получателем

По умолчанию NanoID содержит 21 символ, допустимый в URL, а CUID2 — 24 строчные буквы и цифры. Свой алфавит доступен только NanoID. Повторение символа вызывает ошибку вместо увеличения его веса.

  • Изменение параметра делает результат устаревшим и блокирует экспорт. Новая партия появляется только после явного запуска.
02

Укажите нужное число выдач

Вероятность коллизий зависит от общего ожидаемого числа ID, отдельно от размера текущей партии. Для KSUID укажите максимум ID с одной и той же секундой. К старому CUID не применяется модель равномерной случайной строки.

  • Ctrl/Cmd+Enter запускает операцию. Только разбор может выполняться автоматически, после паузы 350 мс.
03

Проверьте отчёт целиком

Сначала видны 50 записей, затем можно добавлять по 100. Копирование и скачивание включают все результаты. При ошибке хотя бы в одной непустой строке разбор всей партии завершается неудачей.

  • Пример и Очистить сначала показывают замену. После применения можно восстановить прежние ввод, настройки и результаты.

Различия четырёх алгоритмов

Настраиваемый NanoID

Генератор Nano ID предлагает алфавит для URL, шестнадцатеричные символы, цифры или свой набор. Выборка с отклонением в официальной реализации исключает смещение от простого взятия остатка, когда размер алфавита не равен степени двойки.

CUID2 без читаемой структуры

SHA3-512 объединяет время, случайную соль, счётчик и отпечаток сеанса. Первая буква всегда строчная. Можно выбрать длину 2–32, но нельзя редактировать алфавит или внутренние поля либо извлекать их из результата.

Совместимость со старым CUID

После префикса c идут миллисекунды в Base36, четыре символа счётчика, четыре символа отпечатка и восемь случайных символов. Здесь отпечаток — случайная метка сеанса, а не результат чтения свойств браузера.

KSUID с временной меткой

Двадцать байт кодируются в 27 символов Base62 с учётом регистра. Первые четыре байта содержат секунды от Unix 1400000000, остальные шестнадцать — случайную нагрузку. Декодер показывает время UTC и исходную нагрузку.

Границы интерпретации результата

Оценка не проверяет уникальность
Формула дней рождения оценивает хотя бы одно повторение при независимых выборках. Для CUID2 пространство идеализировано, для KSUID рассматривается одна секунда. Ограничение уникальности в базе по-прежнему необходимо: инструмент не обращается к базе и не заменяет повторившиеся значения новыми тайком.
Время не подтверждает создание
Ширина временного поля CUID меняется, поэтому разбор опирается на фиксированные последние 16 символов. KSUID не гарантирует порядок внутри секунды или при переводе часов назад. Nil и Max помечаются как служебные значения, а не реальные события создания.
Непустые строки не исправляются
Пробелы не удаляются, ID не исправляются, не сортируются и не очищаются от повторов. Выберите CUID или KSUID самостоятельно: совпадение алфавитов не раскрывает исходный алгоритм. Разбор времени NanoID и CUID2 не поддерживается.
У параметров есть локальные пределы
Партия содержит 1–1 000 ID. NanoID допускает длину 1–128 и 2–64 разных видимых символа ASCII; CUID2 — длину 2–32. Нет алфавитов Unicode, пробелов, весов, префиксов, произвольных разделителей и редактирования времени или нагрузки KSUID.
Старый формат и внешние системы
CUID устарел и оставлен для проверки совместимости. ID не заменяет пароль или проверку прав. Нет слабого резервного генератора, загрузки файлов, получения данных по URL и подключения к базе. UUID, ULID и Snowflake доступны в отдельных инструментах.

Генератор Nano ID: вопросы

Чем Nano ID отличается от UUID?

NanoID позволяет выбирать длину и алфавит, поэтому удобен для коротких ссылок. UUID имеет определённую стандартом структуру. Если база или API требует UUID, произвольный NanoID не подойдёт, даже при сопоставимой устойчивости к коллизиям.

Можно ли использовать свой алфавит?

Да, в режиме NanoID: от 2 до 64 разных печатных символов ASCII без пробелов. Повторы и неподдерживаемые символы отклоняются. Другие алгоритмы сохраняют алфавиты, заданные их форматами.

Какую длину выбрать для Nano ID?

Если нет особых требований, начните с 21. При 64 символах алфавита это 126 бит идеального пространства. Перед сокращением введите общее ожидаемое число выдач: одна короткая длина не подходит для любого объёма.

Гарантирует ли Nano ID уникальность, как UUID?

Ни NanoID, ни случайный UUID v4 не гарантируют полного отсутствия коллизий. Вероятность может быть очень мала, но остаётся ненулевой. Применяйте ограничение уникальности и обработку повторной попытки в системе, где назначаются идентификаторы.

Как хранить NanoID в PostgreSQL или другой базе данных?

Обычно подходит текстовый столбец с ограничением уникальности и проверкой выбранной длины. Нативный тип UUID не предназначен для произвольного NanoID. Учитывайте регистр: A и a могут быть разными символами, поэтому сравнение без учёта регистра изменит фактическое пространство значений.

Есть вопрос об идентификаторе?

Открыть Генератор Nano ID

Используйте Генератор Nano ID, чтобы сопоставить формат и допущения о коллизиях с вашим приложением. Затем создайте новую партию и выгрузите полный результат.