Какво е NanoID?

NanoID е малък, безопасен за URL генератор на уникални ID-та за JavaScript. Той произвежда компактни случайни низове, които са статистически уникални — подобни на UUID v4, но по-кратки по подразбиране (21 символа срещу 36) и проектирани да бъдат URL-приятелски без никакво кодиране. Всеки символ е избран от внимателно балансирана азбука, така че всеки възможен ID е еднакво вероятен, което елиминира отклонението в разпределението.

NanoID използва криптографски силен генератор на случайни числа (crypto.getRandomValues в браузъри, crypto.randomFill в Node.js), което прави генерираните ID-та подходящи за контексти, чувствителни към сигурност, като session tokens и еднократни връзки. Дължината по подразбиране от 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-та наведнъж
  • Предварително зададени азбуки: Изберете от Подразбиране, Цифри, Малки букви, Главни букви, Буквено-цифрова, Шестнадесетична, Главна шестнадесетична, Без подобни символи или напълно персонализиран набор от символи

Обяснени опции

Опция Описание
Размер Брой символи във всеки генериран ID (1–64). Подразбиранието от 21 дава ~126 бита ентропия, еквивалентно на UUID v4.
Количество Колко ID-та да генерирате в една партида (1–1000).
Азбука Наборът от символи, от които да се черпи. По-големи, по-разнообразни азбуки увеличават ентропията на символ.
Персонализирана азбука Видима, когато е избрана опция Персонализирана. Въведете всички символи; дубликатите се премахват автоматично, за да се предотврати изкривено разпределение.

Как работи

NanoID избира всеки символ чрез генериране на случаен байт, маскиране му, за да се впише в размера на азбуката, и повторен опит, ако резултатът попада извън валидния диапазон — техника, наречена rejection sampling. Това гарантира перфектно плоско разпределение във всички символи на азбуката, независимо дали размерът на азбуката е степен на две. Азбуката по подразбиране (useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict) е безопасна за URL (без +, / или =) и има 64 символа, което прави всеки символ да носи точно 6 бита ентропия.