Что делает инструмент
Инструмент генерирует Nano ID — короткие, случайные, безопасные для URL идентификаторы для ключей базы данных, имён файлов, коротких ссылок, кодов приглашения или тестовых данных. Он использует тот же метод, что и библиотека Nano ID, поэтому ID выглядят и ведут себя так же, как созданные вызовом nanoid() в вашем коде.
Можно изменить длину, выбрать встроенный алфавит или ввести свой и сгенерировать до 1000 ID за раз. Под настройками показаны энтропия одного ID и примерное число ID, после которого вероятность дубликата достигает 1%.
Как пользоваться
- Выберите Длину. 21 — значение Nano ID по умолчанию.
- Выберите Алфавит: для URL, буквы и цифры, строчные, шестнадцатеричный, цифры, без похожих символов или свой.
- Выберите Количество. ID генерируются сразу после изменения настройки.
- Нажмите Сгенерировать, чтобы получить новый набор, и скопируйте или скачайте список — по одному ID в строке.
Пример
Те же ID в JavaScript с пакетом nanoid:
import { nanoid, customAlphabet } from 'nanoid'
nanoid() // "V1StGXR8_Z5jdHi6B-myT"
const orderId = customAlphabet('0123456789ABCDEFGHJKLMNPQRSTUVWXYZ', 12)
orderId() // "4KQ7ZB9XH2MD"
Как выбрать алфавит
Алфавит для URL вмещает больше всего случайности в каждый символ и не требует экранирования в URL, именах файлов и JSON. Алфавит из букв и цифр убирает _ и -, что удобно, когда ID выделяют двойным щелчком. Шестнадцатеричный и цифровой алфавиты полезны, если система принимает только такие символы, но для той же стойкости нужны более длинные ID. Набор без похожих символов исключает, например, 0 и O или 1, l и I, чтобы ID было легче читать и набирать вручную.
Частые вопросы
› Что такое Nano ID?
Nano ID — формат и популярная библиотека JavaScript для случайных уникальных идентификаторов. По умолчанию ID состоит из 21 символа из 64-символьного алфавита, безопасного для URL (A–Z, a–z, 0–9, _ и -). Это 126 бит случайности — почти как 122 бита UUID v4, но в гораздо более короткой строке.
› Какой длины должны быть ID?
Зависит от того, сколько ID вы создадите. Оценка под настройками показывает, примерно сколько ID дают 1% вероятности, что два из них совпадут. Длина 21 по умолчанию безопасна практически для любой системы; для коротких ссылок или кодов приглашения часто хватает 10–12 символов вместе с проверкой уникальности в базе данных.
› Достаточно ли они случайны для задач безопасности?
Символы берутся из криптографического генератора случайных чисел браузера, а значения, не попадающие в алфавит, отбрасываются, а не сворачиваются по модулю, поэтому все символы равновероятны. Длинные ID подходят как неугадываемые токены. На сервер ничего не отправляется.
› Можно ли использовать свои символы?
Да. Выберите «Свой» и введите алфавит, например только заглавные буквы для кодов, которые диктуют вслух. Нужно от 2 до 256 разных символов; повторы отклоняются, потому что сделали бы одни символы вероятнее других.