DevToolPal
UK

Генератор Nano ID

Генерує Nano ID — короткі унікальні ідентифікатори, безпечні для URL, з криптографічною випадковістю, будь-якої довжини, з вбудованими або власними алфавітами та оцінкою ймовірності колізій.

Працює локально, нічого не завантажується на сервер

Параметри

126 біт на ID · приблизно 1,3 × 10¹⁸ ID дають 1% імовірності колізії

Nano ID

0 симв. · 0 B

Що робить інструмент

Інструмент генерує Nano ID — короткі, випадкові, безпечні для URL ідентифікатори для ключів бази даних, імен файлів, коротких посилань, кодів запрошення чи тестових даних. Він використовує той самий метод, що й бібліотека Nano ID, тож ID мають такий самий вигляд і поводяться так само, як створені викликом nanoid() у вашому коді.

Можна змінити довжину, вибрати вбудований алфавіт або ввести власний і згенерувати до 1000 ID за раз. Під налаштуваннями показано ентропію одного ID і приблизну кількість ID, після якої ймовірність дубліката сягає 1%.

Як користуватися

  1. Виберіть Довжину. 21 — значення Nano ID за замовчуванням.
  2. Виберіть Алфавіт: для URL, літери й цифри, малі літери, шістнадцятковий, цифри, без схожих символів або власний.
  3. Виберіть Кількість. ID генеруються одразу після зміни налаштування.
  4. Натисніть Згенерувати, щоб отримати новий набір, і скопіюйте або завантажте список — по одному 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 різних символів; повтори відхиляються, бо зробили б одні символи ймовірнішими за інші.