Нано ИД генератор – кратки, прилагодљиви идентификатори без судара
Нано ИД (Nano ID) је формат за генерисање јединствених идентификатора који је осмишљен да буде компактнији од UUID-а, а да притом задржи упоредиву отпорност на сударе. Подразумевана дужина Нано ИД-а износи 21 карактер – знатно краће од UUID-а (36 карактера) и ULID-а (26 карактера). Ова страница омогућава потпуну контролу над дужином и скупом дозвољених карактера (азбуком), што је чини значајно флексибилнијом од стандардних решења. Генерисање се одвија у потпуности у прегледачу, користећи јаке криптографске случајне вредности (crypto.getRandomValues), тако да се ни један податак не шаље на сервер BroBroGo.
Шта Нано ИД чини другачијим од UUID и ULID
За разлику од UUID-а који има фиксну дужину од 36 знакова (укључујући цртице) и ULID-а са 26 знакова, Нано ИД са подразумеваних 21 карактером нуди бољи однос дужине и сигурности. Рачун је једноставан: број могућих комбинација расте експоненцијално са повећањем дужине и величине азбуке. Нано ИД подразумевано користи URL-безбедну азбуку од 64 карактера (A-Z, a-z, 0-9, - и _). За дужину од 21 карактера то даје 64^21 ≈ 1,4 × 10^38 могућих вредности – практично иста количина као UUID верзија 4 (2^122 ≈ 5,3 × 10^36). Међутим, Нано ИД заузима 42% мање простора у бази података или URL-у.
На овој страници сва три параметра (дужина, азбука и број ИД-ова) су подесива. Промена било ког од њих одмах поново генерише ИД-ове. То омогућава инжењерима да прилагоде идентификаторе строгим ограничењима формата – на пример, када су потребне само цифре, само мала слова, или када треба избећи двосмислене знакове попут O, 0, l и 1.
Улазни параметри и како их подесити
Страница нуди следеће контроле:
| Параметар | Дозвољени опсег/вредности | Подразумевано |
|---|---|---|
| Формат | Нано ИД (тренутно једини) | Нано ИД |
| Број ИД-ова | 1–100 | (поставка корисника) |
| Дужина | 2–36 карактера (клизач) | 21 |
| Азбука | Текстуално поље, минимум 2 различита карактера | A-Za-z0-9-_ |
Азбука је уређивачко текстуално поље. Ако се смањи на само један јединствени карактер (нпр. само x), резултати се бришу, број приказаних ИД-ова постаје 0, а дугме „Копирај све“ се онемогућава. Ово је намерно: са једним карактером сваки ИД дужине L био би само понављање тог истог карактера, што нема никакву вредност и не може да обезбеди јединственост.
Дужина се подешава клизачем од 2 до 36. Краће вредности (нпр. 4–6) су корисне за кратке линкове или кодове за једнократну употребу, док дуже (30+) пружају високу сигурност за дугорочне кључеве. Напомена: за дужину од 2 карактера и азбуку од 64 знакова постоји само 4096 могућности – вероватноћа судара је велика ако се генерише много ИД-ова.
Број ИД-ова може бити од 1 до 100. Промена ове вредности такође покреће поновно генерисање.
Излаз и статусне поруке
Након генерисања, страница приказује листу јединствених Нано ИД-ова. Поред листе налазе се:
- Број ИД-ова: тачан број генерисаних идентификатора.
- Статусна порука:
- „Спремно.“ – када је страница учитана, без резултата.
- „Генерисано.“ – након успешног генерисања.
- „Копирано све!“ – након клика на дугме „Копирај све“.
- „Азбука мора да садржи најмање 2 различита карактера.“ – ако је азбука неважећа.
Кликом на појединачни ИД он се копира у клипборд. Дугме „Копирај све“ копира све ИД-ове одвојене новим редом.
Случајеви на ивици и грешке које треба избегавати
Најчешћа грешка је постављање азбуке са премало јединствених знакова. Азбука мора имати најмање два различита карактера. Ако је унесено abc, то је у реду (три различита). Ако је унесено aaa или само a, систем детектује само један јединствени карактер и резултати се бришу. Ово спречава генерисање бескорисних низова.
Други проблем: коришћење превелике азбуке са непотребним понављањима истог карактера. На пример, азбука aaaaaaabc има само 3 различита карактера (a, b, c). Ово не утиче на функционалност, али смањује ефективну величину простора. Најбоље је користити скуп без понављања.
Дужина 2–36: ако је постављена дужина 2, а азбука има 64 знака, имамо 4096 могућих ИД-ова. Ако се затражи 100 ИД-ова, вероватноћа судара (по рођенданском парадоксу) је веома висока (преко 70%). Страница не спречава ову ситуацију, али корисник треба да буде свестан да је за мале дужине потребна пажња. За дужину 21 и азбуку 64, вероватноћа судара након милијарду ИД-ова је занемарљива (~ 10^-15).
Ко треба да користи овај алат
- Програмери веб АПИ-ја и кратких линкова: Нано ИД се често користи за генерисање јединствених токена у URL-овима (нпр.
https://example.com/r/abc123...). Краћа дужина од UUID-а смањује величину линка. - Архитекте система: Када је потребно прилагодити дужину и скуп знакова ограничењима schemе базе података или формата извештаја.
- Они који брину о приватности: Генерисање се одвија искључиво у прегледачу, без икаквог слања података. Чак и веза са сервером BroBroGo не постоји током овог процеса.
- Сви који граде системе великог обима: Скраћивање ИД-ова са 36 на 21 карактер смањује простор за складиштење за ~40% и смањује пропусни опсег при преносу.
Често постављана питања (ФАК)
1. Да ли се Нано ИД-ови могу копирати као цели низ?
Да. Поред копирања појединачног ИД-а кликом, дугме „Копирај све“ копира све генерисане ИД-ове (сваки у новом реду) у клипборд.
2. Шта се дешава ако променим дужину након генерисања?
Промена било ког параметра (дужине, азбуке, броја) одмах покреће поновно генерисање. Претходни резултати се губе.
3. Да ли је могуће генерисати ИД-ове само од цифара?
Да. Поставите азбуку на 0123456789 (или 0-9 ако желите). Подразумевана азбука садржи и слова и специјалне знакове, али је можете потпуно прилагодити.
4. Колико је безбедно генерисање у прегледачу?
Користи се crypto.getRandomValues, који је криптографски сигуран генератор псеудо-случајних бројева (CSPRNG). То је исти механизам који користе веб апликације за сигурне токене. Никакви подаци не напуштају ваш прегледач.
5. Зашто се резултати бришу када азбука има само један карактер?
Са само једним карактером, сваки ИД дужине L био би низ од L понављања тог карактера (нпр. aaaa...). Такав низ није јединствен и нема практичну вредност. Страница то спречава јасном грешком.
6. Да ли могу да генеришем више од 100 ИД-ова одједном?
Не, горња граница је 100. За веће количине потребно је покренути генерисање више пута. Ово је намерно да се избегне преоптерећење прегледача и осигура брз одзив.