Генератор Nano ID создаёт короткие, безопасные для URL, устойчивые к коллизиям уникальные идентификаторы с помощью того же алгоритма выборки с отклонением, что и популярная библиотека nanoid. По умолчанию он генерирует 21-символьный ID из 64-символьного безопасного для URL алфавита, обеспечивая устойчивость к коллизиям, сравнимую с UUID, примерно при трети длины. Вы можете увеличить или уменьшить длину, сгенерировать сразу несколько ID и использовать собственный алфавит — например, только цифры или набор без учёта регистра для ID, которые нужно произносить вслух по телефону. Это полезно для ключей базы данных, токенов сессий, слагов коротких ссылок и везде, где UUID кажется слишком длинным. Всё выполняется локально в браузере, поэтому ни один ID не попадает на сервер, пока вы не решите его использовать.
Возможности
Генерирует безопасные для URL Nano ID с алфавитом по умолчанию из 21 символа и 64 знаков
Настраиваемая длина от 2 до 128 символов на один ID
Генерация пакета до 500 Nano ID в один клик
Поддержка пользовательского алфавита — можно ограничить вывод цифрами, шестнадцатеричными символами или любым набором знаков
Несмещённая выборка с отклонением избегает смещения по модулю, свойственного наивным генераторам случайного индекса
По одному ID на строку, готово для вставки в код, таблицы или миграции
Использует криптографический генератор случайных чисел вашего браузера для каждого ID
Работает полностью на вашем устройстве — ни один ID никогда не отправляется на сервер
Как использовать Nano ID
Задайте длину ID (по умолчанию 21) и нужное количество
При желании замените алфавит на свой набор символов
Нажмите Generate, чтобы получить новые ID с помощью криптографического RNG браузера
Скопируйте список или снова нажмите Generate для нового пакета
Пример
Ввод
size = 21
Результат
V1StGXR8_Z5jdHi6B-myT
21-символьный Nano ID, сгенерированный из стандартного 64-символьного безопасного для URL алфавита.
Частые ошибки и устранение неполадок
Поле пользовательского алфавита отклоняется или выдаёт ошибку. — Генератору Nano ID нужно как минимум 2 уникальных символа в алфавите; повторяющиеся символы автоматически удаляются перед генерацией.
ID, сгенерированные с коротким пользовательским алфавитом, при вводе кажутся длиннее ожидаемого. — Меньшему алфавиту требуется больше символов для достижения той же устойчивости к коллизиям — увеличивайте длину при ограничении алфавита, например только цифрами.
Непонятно, сколько Nano ID безопасно генерировать без риска коллизий. — При длине по умолчанию в 21 символ вам потребовалось бы генерировать около триллиона ID в секунду в течение тысячи лет, чтобы достичь 1% вероятности хотя бы одной коллизии — уменьшайте длину, только если вы также ожидаете генерировать значительно меньше ID.
Часто задаваемые вопросы
Что такое Nano ID?
Nano ID — это короткий, безопасный для URL, случайный уникальный идентификатор, обычно длиной 21 символ, генерируемый с использованием криптографически стойкой случайности. Он обеспечивает устойчивость к коллизиям, сравнимую с UUID, но в гораздо более короткой строке.
Чем Nano ID отличается от UUID?
UUID имеет фиксированный формат из 36 символов с определённой структурой (биты версии и варианта). У Nano ID нет фиксированной структуры — вы сами выбираете длину и алфавит — и он короче, оставаясь при этом столь же надёжным против коллизий при настройках по умолчанию.
Может ли Генератор Nano ID использовать пользовательский алфавит?
Да. Замените поле алфавита на любой набор уникальных символов — например только цифры, шестнадцатеричные символы или набор без учёта регистра — и генератор будет формировать ID исключительно из этого набора.
Загружает ли Генератор Nano ID созданные мной ID куда-либо?
Нет. Каждый Nano ID генерируется локально с помощью криптографического генератора случайных чисел вашего браузера. Ничего не отправляется на сервер, поэтому созданные вами ID видны только на вашем устройстве.
Смещён ли вывод Генератора Nano ID в сторону определённых символов?
Нет. Он использует несмещённую выборку с отклонением, отбрасывая случайные байты, выходящие за пределы диапазона алфавита, вместо того чтобы сокращать их по модулю, поэтому у каждого символа алфавита равные шансы появиться.
Какую длину выбрать для Nano ID?
Значение по умолчанию в 21 символ — безопасный выбор для общих целей. Более короткие ID (10-14 символов) хорошо подходят для слагов коротких ссылок с небольшим объёмом; более длинные ID подходят для систем с высокой нагрузкой, которым нужна более сильная устойчивость к коллизиям.
Связанные инструменты
Генератор UUID — Генерируйте до 1000 UUID за раз: случайные v4, упорядоченные по времени v7 или NIL UUID.
Генератор ULID — Создаёт и декодирует сортируемые ULID, конвертирует в UUID