Що робить інструмент
Інструмент генерує 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 різних символів; повтори відхиляються, бо зробили б одні символи ймовірнішими за інші.