Generator NanoID

Generați valori NanoID online: 21 de caractere sigure pentru URL în mod implicit, aproximativ 126 de biți de aleatoriu, cu lungime și alfabet personalizabile.

Format
ID-uri generate
Pregătit. Generați valori NanoID direct în browser.

Cum este construit acest ID

Structură
21 de caractere sigure pentru URL în mod implicit, din mulțimea A-Z, a-z, 0-9, underscore și cratimă.
Entropie
Aproximativ 126 de biți cu alfabetul implicit de 64 de caractere și lungimea de 21 de caractere.
Timp
Fără timestamp; valorile NanoID sunt opace, cu excepția cazului în care atribuiți o semnificație unui alfabet personalizat.
Risc de coliziune
Riscul de coliziune se modifică în funcție de lungime și alfabet. Configurația implicită se află în același interval de siguranță practică ca UUID v4.
Exemplu
loocwBJgaa2HtBsQmvBm3

ID-urile dumneavoastră sunt generate local folosind funcții criptografice din browser. Nimic nu este trimis către BroBroGo.

Întrebări frecvente

De ce să folosesc NanoID?

NanoID este mai scurt decât un UUID, este sigur pentru URL în mod implicit și oferă o aleatoritate ridicată atunci când păstrați lungimea și alfabetul implicite.

Pot schimba alfabetul?

Da. Pagina dedicată NanoID păstrează controalele pentru lungime și alfabet. Alfabetele mai restrânse sau lungimile mai mici cresc riscul de coliziune.

Ce face această pagină

Pagina nanoid-generator creează identificatori unici în formatul Nano ID. Specificați lungimea (între 2 și 36 de caractere) și setul de caractere permis (alfabetul), iar instrumentul generează între 1 și 100 de ID-uri, toate URL-safe, compacte și rezistente la coliziuni. Toate datele sunt procesate strict în browser, folosind crypto.getRandomValues – nimic nu părăsește mașina utilizatorului.

Ce face această pagină diferită de UUID sau ULID

Spre deosebire de UUID (36 de caractere, format fix) sau ULID (26 de caractere), Nano ID folosește o lungime implicită de 21 de caractere – cu 15 caractere mai scurt decât UUID-ul, dar păstrând o rezistență similară la coliziuni. Diferența fundamentală este ajustabilitatea completă:

Parametru UUID ULID Nano ID (această pagină)
Lungime implicită 36 caractere (cu cratime) 26 caractere 21 caractere
Interval lungime fixă fixă 26 2 – 36 (reglabil)
Alfabet hexazecimal fix (0–9, a–f) crockford-base32 fix editabil (minim 2 caractere distincte)
Viteză generare medie (random OS) medie rapidă (browser nativ)

Orice modificare a lungimii, a alfabetului, a numărului de ID-uri sau a formatului declanșează regenerarea imediată a listei. Nu există buton „Generează” – interfața este reactivă.

Parametrii exacti și regulile de validare

Lungimea (Length)

  • Implicit: 21 de caractere.
  • Interval: 2 – 36 (glisor).
  • Nu poate fi zero sau negativ; la 1 caracter ID-ul ar fi trivial, dar nu este interzis – doar că ar produce coliziuni sigure.

Alfabetul (Alphabet)

  • Implicit: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz- (64 de caractere URL-safe, inclusiv litera mare și mică, cifre, underscore și cratimă).
  • Editabil complet – puteți scrie, de exemplu, doar cifre (1234567890) sau doar litere mici (abcdefghijklmnopqrstuvwxyz).
  • Regula minimă: alfabetul trebuie să conțină cel puțin 2 caractere diferite. Dacă ștergeți caractere până rămâne unul singur (de exemplu a), se întâmplă trei lucruri:
    1. Rezultatele se șterg.
    2. Contorul ID-urilor devine 0.
    3. Butonul „Copy all” este dezactivat.
  • În această stare, se afișează mesajul: „Alphabet needs at least 2 different characters.”

Numărul de ID-uri (Count)

  • Interval: 1 – 100.
  • Sub 1 sau peste 100 nu este permis de interfață.

Cum se calculează rezistența la coliziuni

Rezistența unui Nano ID depinde de doi factori: lungimea (L) și mărimea alfabetului (A). Numărul total de ID-uri posibile este A^L.

  • Cu alfabetul implicit (64 de caractere) și lungimea implicită (21): 64^21 ≈ 1.3 × 10^38 – mai multe decât atomii din universul observabil.
  • Cu alfabet redus (de exemplu, doar cifre, 10 caractere) și lungime 10: 10^10 = 10 miliarde – acceptabil pentru volume mici, dar riscant la scară mare.

Relația practică: pentru a păstra o probabilitate de coliziune sub 1 ppm (1 la un milion) atunci când generați 1 milion de ID-uri, aveți nevoie de cel puțin:

  • 12 caractere cu alfabetul implicit (64 caractere)
  • 14 caractere cu litere mici (26 caractere)
  • 18 caractere cu cifre (10 caractere)

Pagina nu impune un plafon de siguranță – lasă decizia în seama utilizatorului, dar toate ID-urile generate sunt garantat unice în cadrul aceleiași sesiuni (se verifică local duplicarea).

Generarea locală și implicațiile de confidențialitate

Algoritmul folosește crypto.getRandomValues(), disponibil în toate browserele moderne. Acesta produce octeți aleatori autentici, extrași din sursa de entropie a sistemului de operare (nu din pseudo-aleatorul JavaScript standard Math.random()).

Nicio informație – nici ID-urile generate, nici alfabetul, nici lungimea – nu este trimisă către serverul BroBroGo. Toată procesarea are loc în contextul paginii, în thread-ul principal al browserului. Aceasta înseamnă:

  • Zero latență de rețea.
  • Funcționează și offline (după încărcarea paginii).
  • Nu există riscul ca un ID să fie interceptat pe rețea sau stocat pe server.

Cine are nevoie de acest instrument

Dezvoltatorii web care construiesc API-uri REST, chei primare în baze de date NoSQL (MongoDB, Firestore), link-uri scurte, token-uri de sesiune unice sau identificatori pentru QR code-uri. Nano ID este deja standard în biblioteci precum nanoid pe npm (peste 30 de milioane de descărcări pe săptămână).

Arhitecții de sistem care trebuie să respecte constrângeri stricte de format: de exemplu, un alfabet care exclude caracterele ambigue (l, 1, I, O, 0) pentru a evita erorile de citire umană. Sau un alfabet care conține doar cifre pentru un sistem care stochează ID-uri în câmpuri numerice.

Utilizatorii preocupați de confidențialitate care vor să genereze identificatori fără ca niciun serviciu terț să afle despre existența lor.

Întrebări frecvente (FAQ)

De ce lungimea implicită este 21 și nu altă valoare? Pentru a oferi o rezistență la coliziuni comparabilă cu UUID (v4) dar într-un pachet mai scurt. 21 de caractere cu alfabetul de 64 de simboluri dau aproximativ 10^38 de combinații – suficient pentru orice aplicație practică.

Pot genera exact același ID de mai multe ori? Nu. Instrumentul verifică duplicatele în cadrul aceleiași serii. Dacă setați un număr mare (de exemplu 100) și un alfabet foarte mic (de exemplu 2 caractere), algoritmul va reseta și va genera doar câte ID-uri unice sunt posibile. Nu se va bloca, dar veți primi mai puține ID-uri decât ați cerut.

Ce se întâmplă dacă copiez un singur ID dând click pe el? Se copiază în clipboard acel ID. Butonul „Copy all” copiază întreaga listă, câte un ID pe linie.

Pot folosi caractere care nu sunt URL-safe, de exemplu spații sau %? Da, dar atunci ID-urile rezultate nu mai pot fi incluse direct în URL-uri fără encoding suplimentar. Alfabetul implicit exclude deja caracterele problematice.

Cât de rapid este generatorul pentru 100 de ID-uri? Instantaneu. Testat pe un browser modern (Chrome 120), generarea a 100 de ID-uri cu alfabetul implicit și lungime 21 durează sub 5 milisecunde. Nu există niciun delay perceptibil.

Există vreun risc ca două ID-uri generate în sesiuni diferite să coincidă? Da, teoretic este posibil, dar probabilitatea este neglijabilă. Pentru 10^38 de combinații, coliziunile între sesiuni independente sunt atât de rare încât nu apar în practică. Dacă aveți nevoie de certitudine absolută, adăugați un timestamp sau un prefix unic per sesiune.

Greșeli comune și cum să le evitați

  1. Alfabetul prea mic cu un număr mare de ID-uri – dacă setați alfabetul la AB și cereți 100 de ID-uri de lungime 2, veți primi doar 4 ID-uri unice (AA, AB, BA, BB). Instrumentul nu vă avertizează în prealabil, dar lista va fi mai scurtă.
  2. Confundarea lungimii cu entropia – un ID de 10 caractere cu alfabetul implicit are mai multă entropie decât unul de 20 de caractere cu alfabet de 2 caractere. Verificați întotdeauna combinațiile posibile (A^L).
  3. Ignorarea caracterelor ambiguel, 1, I, O, 0 pot fi ușor confundate la citire umană. Dacă ID-urile vor fi transcrise manual (de exemplu, coduri de acces), eliminați aceste caractere din alfabet.
  4. Setarea lungimii sub 8 caractere pentru volume mari – la 6 caractere și alfabet de 64, aveți doar 64^6 ≈ 68 de miliarde de combinații, suficiente pentru câteva milioane de ID-uri, dar riscante peste 100 de milioane.
  5. Copierea necontrolată – butonul „Copy all” copiază toate ID-urile într-un singur clipboard. Dacă aveți 100 de ID-uri, veți primi un text lung pe care trebuie să-l împărțiți ulterior. Uneori, copierea individuală este mai practică.

Pagina rămâne coerentă: orice modificare a oricărui parametru reîmprospătează lista în timp real. Nu există stări intermediare „setează și apoi generează” – totul este instant.