Генератор UUID · форматNanoID — короткий идентификатор

NanoID — 21 символ из 64-символьного алфавита A–Z, a–z, 0–9, «_» и «-»: 126 случайных бит — даже чуть больше, чем у UUID v4 (122), — но на 15 символов короче и без кодирования в адресе. Длину и алфавит можно менять — от этого зависит, сколько значений можно выдать без риска совпадения.

01Генератор02Устройство03Сравнение04Вопросы05Похожие
01

Генератор NanoID

формат выбран — все настройки и проверка в полном генераторе
Длина
21~126 бит
Алфавит
Количество
Нажмите «Сгенерировать» — здесь появятся идентификаторы.
Все форматы, проверка и разбор UUID — в полном генераторе →
02

Как устроен: NanoID

ОбразецV1StGXR8_Z5jdHi6B-myT
V1StGXR8_Z5jdHi6B-myT
21 символ — каждый 6 бит случайности
A–Z a–z 0–9 _ -
алфавит из 64 знаков, безопасен для URL
21 × 6
= 126 бит, на 4 больше, чем у UUID v4

Когда применять

  • Идентификатор в адресе страницы: короткие ссылки, ID документа, приглашения.
  • Коды, которые видит человек, — с алфавитом без похожих символов.
  • Не для базы с сортировкой по времени: времени внутри нет, порядок случайный.

Чем отличается от соседей

Против UUID v4: та же или большая случайность при длине 21 вместо 36 и без дефисов, но NanoID — не стандарт, а библиотека, и колонка uuid в базе его не примет. Против ULID: ULID сортируется по времени, NanoID — нет. Укорачивая NanoID, вы уменьшаете запас: 10 символов — это 60 бит, и совпадения становятся реальными на миллиардах значений.

03

Сравнение форматов

ФорматДлинаСлучайностьВремя внутриСортируетсяСтандарт
UUID v436122 битанетнетRFC 9562
UUID v73674 битамс, 48 битдаRFC 9562
UUID v136узел и счётчик100 нс, 60 битнетRFC 9562, устаревший
Nil UUID36нетнет—RFC 9562
NanoID21126 битнетнетбиблиотека, не RFC
ULID2680 битмс, 48 битдаспецификация ULID, не RFC
04

Частые вопросы

Длиной и статусом. NanoID по умолчанию — 21 символ без дефисов из алфавита, безопасного для адресов, при 126 случайных битах; UUID v4 — 36 символов и 122 бита. Зато UUID — стандарт RFC с типом в базах данных и функциями в языках, а NanoID — библиотека. NanoID удобен в ссылках и на экране, UUID — в схемах и протоколах.

Обновлено

«» добавлен в избранное