Что такое NanoID?

NanoID — это крошечный генератор уникальных идентификаторов, безопасный для URL, для JavaScript. Он создаёт компактные случайные строки, которые статистически уникальны — похожи на UUID v4, но короче по умолчанию (21 символ вместо 36) и разработаны так, чтобы быть удобными для URL без какого-либо кодирования. Каждый символ выбирается из тщательно сбалансированного алфавита, поэтому каждый возможный ID имеет одинаковую вероятность, что исключает смещение в распределении.

NanoID использует криптографически стойкий генератор случайных чисел (crypto.getRandomValues в браузерах, crypto.randomFill в Node.js), что делает сгенерированные ID пригодными для контекстов, чувствительных к безопасности, таких как токены сеанса и одноразовые ссылки. Длина по умолчанию в 21 символ даёт примерно 2,1 × 10³⁰ возможных комбинаций — сравнима с UUID v4 — а компактный формат экономит пропускную способность и место для хранения.

Описание инструмента

Этот онлайн-генератор NanoID позволяет создавать один или несколько NanoID мгновенно в вашем браузере без необходимости установки. Вы можете управлять длиной ID, количеством генерируемых ID и используемым алфавитом — от безопасного стандартного до шестнадцатеричного, буквенно-цифрового, только цифр или полностью пользовательского набора символов.

Примеры

Стандартный алфавит, размер 21:

V1StGXR8_Z5jdHi6B-myT
useandom-26T198340PX7
bfghjklqvwyzrictV1StG

Шестнадцатеричный алфавит, размер 16:

3f9a1c2b4e7d0f85
a0c4e8f23b6d917c

Только цифры, размер 8:

04817263
93571048

Пользовательский алфавит (abc123), размер 12:

b2ca31b1ca2b
3a1c2b3c1ab2

Возможности

  • Регулируемая длина: установите размер ID от 1 до 64 символов (по умолчанию 21)
  • Массовое создание: создавайте до 1000 ID одновременно
  • Предустановки алфавита: выбирайте из стандартного, только цифры, только строчные, только прописные, буквенно-цифровой, шестнадцатеричный, прописной шестнадцатеричный, без похожих символов или полностью пользовательского набора символов
  • Предустановка без похожих символов: удаляет символы, которые визуально неоднозначны (например 0, O, I, l) для удобочитаемых ID
  • Загрузить как файл: сохраните все сгенерированные ID в nanoids.txt одним щелчком

Варианты использования

  • Разработка приложений: используйте NanoID в качестве первичных ключей в базах данных или идентификаторов записей в API, где предпочтительна короткая строка, безопасная для URL, вместо полного UUID.
  • Генерация токенов: создавайте короткие случайные токены для ссылок сброса пароля, кодов приглашения или реферальных слагов, где важны удобочитаемость и безопасность для URL.
  • Тестирование и тестовые данные: быстро создавайте пакеты реалистичных уникальных идентификаторов для заполнения тестовых наборов или данных прототипа.

Объяснение параметров

Параметр Описание
Размер Количество символов в каждом сгенерированном ID (1–64). Стандартное значение 21 даёт ~126 бит энтропии, что эквивалентно UUID v4.
Количество Сколько ID создать в одном пакете (1–1000).
Алфавит Набор символов для выбора. Более крупные и разнообразные алфавиты увеличивают энтропию на символ.
Пользовательский алфавит Видно при выборе Пользовательский. Введите любые символы; дубликаты удаляются автоматически, чтобы предотвратить смещённое распределение.

Как это работает

NanoID выбирает каждый символ, генерируя случайный байт, маскируя его в соответствии с размером алфавита и повторяя попытку, если результат выходит за допустимый диапазон — метод, называемый выборкой с отклонением. Это обеспечивает идеально равномерное распределение по всем символам алфавита независимо от того, является ли размер алфавита степенью двойки. Стандартный алфавит (useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict) безопасен для URL (без +, / или =) и содержит 64 символа, что означает, что каждый символ несёт ровно 6 бит энтропии.