NanoID generator

Generirajte NanoID vrijednosti na mreži: zadano 21 znak siguran za URL, oko 126 bita nasumičnosti, s prilagođenom duljinom i abecedom.

Format
Generirani ID-jevi
Spremno. Generirajte NanoID vrijednosti u svom pregledniku.

Kako se gradi ovaj ID

Izgled
Zadano 21 znak siguran za URL iz skupova A-Z, a-z, 0-9, podvlake i crtice.
Entropija
Oko 126 bita sa zadanom abecedom od 64 znaka i duljinom od 21 znaka.
Vrijeme
Nema vremenske oznake; NanoID vrijednosti su neprozirne osim ako ne unesete značenje u prilagođenu abecedu.
Rizik od kolizije
Rizik od kolizije mijenja se s duljinom i abecedom. Zadana postavka je u istom praktičnom rasponu sigurnosti kao i UUID v4.
Primjer
OzCVYmaja1wpWL5t4-kQA

Vaši se ID-jevi generiraju lokalno pomoću jake nasumičnosti preglednika. Ništa se ne šalje na BroBroGo.

Česta pitanja

Zašto koristiti NanoID?

NanoID je kraći od UUID-a, zadano je siguran za URL i dalje ima visoku razinu nasumičnosti kada zadržite zadanu duljinu i abecedu.

Mogu li promijeniti abecedu?

Da. Zaključana NanoID stranica zadržava kontrole za duljinu i abecedu. Manje abecede ili kraće duljine povećavaju rizik od kolizije.

Što je Nano ID i kako se razlikuje od UUID‑a?

Nano ID je format za generiranje jedinstvenih, kompaktnih identifikatora koji su sigurni za upotrebu u URL‑ovima. Njegova zadana duljina iznosi 21 znak – znatno kraće od UUID‑a (36 znakova) i ULID‑a (26 znakova), a istovremeno pruža usporedivu otpornost na sudare. Dok UUID koristi fiksnu strukturu s crticama (npr. 550e8400-e29b-41d4-a716-446655440000), Nano ID je potpuno proizvoljan niz koji možete prilagoditi kako po duljini tako i po skupu dopuštenih znakova.

Alat na ovoj stranici omogućuje da sami odredite i duljinu (između 2 i 36 znakova) i abecedu (skup znakova koji će se koristiti). To je ključna razlika u odnosu na generatore UUID‑a ili ULID‑a: ne morate se zadovoljiti fiksnim formatom. Na primjer, ako trebate identifikatore koji se sastoje samo od brojeva, možete postaviti abecedu na 0123456789 i prilagoditi duljinu tako da i dalje imate dovoljno velik prostor vrijednosti. Zadana abeceda uključuje 64 URL‑sigurna znaka (mala i velika slova engleske abecede, brojevi te _-), što osigurava da generirani ID‑ovi ne sadrže ambigvitetne ili lako zamjenjive znakove poput 0 i O.

Kako alat funkcionira – unosi i izlazi

Sučelje je jednostavno: na raspolaganju su četiri kontrole za oblikovanje unosa.

  • Format: padajući izbornik gdje je trenutno odabran „Nano ID”. (U budućnosti bi se mogle dodati i druge sheme.)
  • Broj (Count): klizač ili unos broja između 1 i 100 – toliko identifikatora generirat će se odjednom.
  • Duljina (Length): klizač s rasponom od 2 do 36, zadana vrijednost je 21.
  • Abeceda (Alphabet): uređivačko polje s tekstom zadanih URL‑sigurnih znakova. Možete ga mijenjati po želji, uz jedan važan uvjet: abeceda mora sadržavati najmanje dva različita znaka.

Svaka promjena bilo kojeg unosa odmah ponovno generira ID‑ove. Ne postoji gumb „Generiraj” – alat reagira trenutno, što ubrzava iteraciju kada testirate različite postavke.

Izlaz je popis generiranih jedinstvenih Nano ID‑ova. Ispod popisa prikazuje se broj generiranih identifikatora („IDs count”). Statusna poruka mijenja se ovisno o stanju:

  • Ready. – kad je alat spreman, nema aktivnog generiranja.
  • Generated. – nakon što su ID‑ovi generirani.
  • Copied all! – nakon što kopirate sve ID‑ove u međuspremnik.
  • Alphabet needs at least 2 different characters. – greška kada abeceda sadrži samo jedan znak, u kojem se slučaju rezultati brišu, broj ID‑ova postaje 0, a gumb „Copy all” se onemogućuje.

Pojedinačni ID možete kopirati klikom na njega. „Copy all” kopira cijeli popis odvojen novim redom.

Ključna pravila i rubni slučajevi

Alat je dizajniran da bude robustan, ali postoje tri rubna uvjeta koja valja poznavati:

  1. Abeceda s jednim znakom – ako abecedu svedete na jedan znak (npr. samo A), tada je nemoguće generirati jedinstvene identifikatore jer za svaku duljinu postoji samo jedan mogući niz (AAA…). Alat u tom trenutku briše sve prikazane ID‑ove, postavlja broj ID‑ova na 0 i onemogućuje „Copy all”. Ponovno dodavanje drugog znaka odmah obnavlja generiranje.

  2. Duljina izvan raspona – klizač ograničava duljinu na 2–36. Duljina 2 daje samo 4.096 mogućih kombinacija uz zadanu abecedu od 64 znaka (64² = 4.096), što je dovoljno samo za male skupove podataka. Duljina 36 daje prostor od 64³⁶ ≈ 3,4 × 10⁶⁵, što je astronomski velik.

  3. Broj ID‑ova > 100 – alat ne dopušta generiranje više od 100 identifikatora odjednom. Ako trebate više, morate ponoviti generiranje. Ograničenje postoji i zbog preglednosti i zbog performansi izračuna u pregledniku.

Svi ID‑ovi generirani su u pregledniku pomoću crypto.getRandomValues() – kriptografski jake slučajnosti koju pruža moderno okruženje. To znači da identifikatori nisu predvidljivi i da ni jedan podatak ne napušta vaše računalo. BroBroGo ne vidi što generirate – alat radi potpuno lokalno.

Zašto su duljina i abeceda važne – matematika i primjeri

Broj mogućih Nano ID‑ova računa se kao (veličina abecede) ^ (duljina). S zadanim postavkama (64 znaka, 21 znak) broj je 64²¹ ≈ 1,4 × 10³⁸. Usporedbe radi, UUID verzije 4 ima 122 bita slučajnosti, što daje otprilike 5,3 × 10³⁶ mogućnosti – Nano ID s 21 znakom nudi 26 puta veći prostor od UUID‑a.

Međutim, ako skratite duljinu ili smanjite abecedu, prostor se drastično sužava. Primjerice:

  • Abeceda samo brojeva (10 znakova) i duljina 6 daje 10⁶ = 1.000.000 ID‑ova – dovoljno za male baze, ali sudari su vjerojatni pri većem broju zapisa.
  • Abeceda malih slova (26 znakova) i duljina 8 daje 26⁸ ≈ 2,1 × 10¹¹ – još uvijek malo u usporedbi s 21 znakom.

Zato je ključno odabrati duljinu koja odgovara očekivanom volumenu. Opće pravilo: ako očekujete do milijun zapisa, želite da je broj mogućih ID‑ova barem 10¹² (milijun puta veći od broja zapisa) kako bi vjerojatnost sudara ostala zanemariva. Alat vam omogućuje da sami procijenite i prilagodite te parametre.

Česta pogreška u radu s Nano ID‑om jest korištenje abecede koja sadrži lako zamjenjive znakove poput 0 (broj) i O (slovo), ili 1, l, I. Zadana abeceda već eliminira te probleme, ali ako mijenjate abecedu ručno, pazite da ne unesete dvoznačne znakove – inače će ID‑ovi biti čitljivi samo stroju, a ljudi će ih teško prepisivati.

Tko treba Nano ID generator?

Razvojni inženjeri koji grade API‑je – Nano ID je idealan za generiranje tokena za sesije, ključeva za REST resurse ili jedinstvenih identifikatora u porukama. Zbog kratkoće (21 znak naspram 36) smanjuje se veličina URL‑ova i JSON odgovora, što je osobito važno u mobilnim aplikacijama gdje je propusnost ograničena.

Arhitekti sustava koji moraju zadovoljiti stroge formate – primjerice, identifikator mora sadržavati samo alfanumeričke znakove, ili ne smije započinjati brojem. Alat omogućuje da propišete točnu abecedu i duljinu te tako osigurate usklađenost s normama.

Programeri baza podataka – kada treba brz primarni ključ koji ne otkriva redoslijed (za razliku od automatskih inkrementalnih brojeva). Nano ID je nasumičan i nepredvidljiv, što sprječava „enumeration attack” (napad nabrajanjem).

Svi koji brinu o privatnosti – budući da se generiranje odvija lokalno u pregledniku, nema rizika da identifikatori budu presretnuti ili zabilježeni na poslužitelju. To je važno za aplikacije koje rade s osjetljivim podacima, poput zdravstvenih ili financijskih sustava.

Često postavljana pitanja

Zašto je zadana duljina 21 znak? Zato što 21 znak s 64‑znakovnom abecedom daje približno 1,4 × 10³⁸ mogućnosti – više nego UUID verzije 4 – uz prosječno 21 znak. To je „slatka točka” između kratkoće i otpornosti na sudare.

Mogu li koristiti samo brojeve? Da. Unesite 0123456789 u polje za abecedu. No tada će vjerojatnost sudara rasti, pa biste trebali povećati duljinu. Na primjer, s 10‑znamenkastom abecedom i duljinom 14 dobivate prostor od 10¹⁴ – otprilike jednako kao UUID.

Što se događa ako abeceda sadrži duplikate znakova? Alat ih ne uklanja automatski. Ako unesete aabb, efektivna veličina abecede je samo 2 (a i b), jer se duplikati ponašaju kao jedan znak. Broj mogućih ID‑ova računa se prema broju različitih znakova, ali alat ne provjerava duplikate – na vama je da osigurate jedinstvenu abecedu.

Je li generiranje kriptografski sigurno? Da. Koristi se crypto.getRandomValues() koji pruža pravu nasumičnost iz operacijskog sustava, a ne pseudo‑slučajnost. To znači da je nemoguće predvidjeti ID‑ove čak i ako netko zna prethodne.

Mogu li generirati 1000 ID‑ova odjednom? Ne, alat je ograničen na najviše 100. Za veće količine preporučuje se pokretanje skripte lokalno (poslužiteljska strana). Ograničenje je tu da preglednik ne bi zastajkivao pri prikazu dugih popisa.

Kako mogu provjeriti da se ID‑ovi ne sudaraju? Alat automatski osigurava da u jednom generiranju nema duplikata. Ako tražite dulju provjeru (npr. da se novi ID ne sudari s već postojećim u bazi), morate to implementirati u vlastitom sustavu – alat nema pristup vašim podacima.