Generador de NanoID

Genereu valors NanoID en línia: 21 caràcters segurs per a URL per defecte, uns 126 bits d'aleatorietat, amb longitud i alfabet personalitzats.

Format
ID generats
Llest. Genereu valors NanoID al vostre navegador.

Com es construeix aquest ID

Estructura
21 caràcters segurs per a URL per defecte, que inclouen A-Z, a-z, 0-9, guió baix i guió.
Entropia
Uns 126 bits amb l'alfabet per defecte de 64 caràcters i una longitud de 21 caràcters.
Temps
Sense marca de temps; els valors NanoID són opacs a menys que s'introdueixi un significat en un alfabet personalitzat.
Risc de col·lisió
El risc de col·lisió varia segons la longitud i l'alfabet. El valor per defecte es troba en el mateix rang de seguretat pràctica que l'UUID v4.
Exemple
9mob0Z6N2HGviFxJ6lWVt

Els ID es generen localment amb mètodes aleatoris forts del navegador. No s'envia res a BroBroGo.

Preguntes freqüents

Per què utilitzar NanoID?

El NanoID és més curt que un UUID, és segur per a URL per defecte i manté una alta aleatorietat si es conserva la longitud i l'alfabet predeterminats.

Puc canviar l'alfabet?

Sí. La pàgina de NanoID manté els controls de longitud i d'alfabet. Els alfabets més reduïts o les longituds més curtes augmenten el risc de col·lisió.

Què és el Nano ID i per què és diferent dels UUID i ULID?

El Nano ID és un format d'identificador únic i col·lisió-resistent, dissenyat per ser compacte, segur en entorns web i totalment personalitzable. Per defecte, utilitza una longitud de 21 caràcters i un alfabet URL‑safe (caràcters que no tenen significat especial en URLs: lletres minúscules i majúscules, xifres, guions i guions baixos). Això el fa significativament més curt que un UUID, que en la versió més habitual (UUID v4) té 36 caràcters (inclosos guions), o que un ULID, que en té 26. La tria de 21 caràcters no és arbitrària: ofereix una resistència comparable a col·lisions (aproximadament 2^122 combinacions possibles) amb un 42% menys de caràcters que un UUID. Aquesta reducció es tradueix en menys espai d'emmagatzematge en bases de dades, menys ample de banda en transmissions i una millor experiència d'usuari en enllaços curts o codis QR.

El que distingeix aquesta pàgina d'altres generadors de Nano ID és la flexibilitat total sobre els dos paràmetres que defineixen un Nano ID: la longitud i l'alfabet. No esteu limitats al valor per defecte de 21 caràcters ni al conjunt de caràcters predefinit. Podeu ajustar la longitud entre 2 i 36 caràcters mitjançant un lliscador, i l'alfabet és un camp de text editable que conté els caràcters permesos. Qualsevol canvi en qualsevol d'aquests paràmetres (o en el nombre d'IDs a generar, d'1 a 100) regenera immediatament la llista d'identificadors. Aquesta resposta en temps real permet experimentar i trobar la combinació òptima per a cada aplicació, sense haver de recarregar la pàgina ni prémer cap botó addicional.

Personalització de la longitud i l'alfabet: com funciona el generador

El generador presenta quatre controls principals: un menú desplegable per seleccionar el format (en aquest cas, Nano ID), un camp per al nombre d'IDs (d'1 a 100), un lliscador per a la longitud (2–36) i un camp de text per a l'alfabet. Per defecte, la longitud és 21 i l'alfabet conté els caràcters URL‑safe: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-. Podeu esborrar-lo i escriure, per exemple, només dígits (0123456789), només minúscules, o un conjunt que exclogui caràcters ambigus com l i 1 o O i 0. En qualsevol cas, l'alfabet ha de contenir almenys dos caràcters diferents. Si només en conté un, el generador neteja els resultats, mostra un error («L'alfabet necessita almenys 2 caràcters diferents») i desactiva el botó «Copiar tots». Aquesta restricció és lògica: amb un sol caràcter, tots els IDs serien idèntics (per exemple, aaaa...), cosa que no té sentit.

El procés de generació utilitza l'objecte crypto.getRandomValues del navegador per obtenir nombres aleatoris criptogràficament forts. Per generar un ID de longitud L a partir d'un alfabet A de mida M, l'algorisme calcula per a cada posició un índex aleatori uniforme entre 0 i M-1, i selecciona el caràcter corresponent. Es fa tot localment, sense cap comunicació amb servidors externs. Cada vegada que canvieu la longitud, l'alfabet o el nombre d'IDs, la llista es regenera completament, assegurant que sempre veieu identificadors vàlids basats en les configuracions actuals.

Casos límit i comportament del generador

La pàgina gestiona diversos casos límit que podrien donar lloc a errors o a resultats no desitjats. El més important és l'alfabet amb un sol caràcter, ja comentat. També cal tenir en compte que la longitud mínima és 2: amb un sol caràcter, l'ID seria trivial i la probabilitat de col·lisió seria molt alta fins i tot amb un alfabet gran. La longitud màxima és 36, que ja cobreix la majoria de casos pràctics; si necessiteu IDs més llargs, probablement hauríeu de considerar un altre format.

El nombre d'IDs que es poden generar alhora està limitat entre 1 i 100. Aquesta restricció és raonable perquè la generació de molts ID no és costosa (és O(n*L)), però mostrar-ne centenars en una pàgina podria ser incòmode. El botó «Copiar tots» copia al porta-retalls tots els IDs generats en una línia separats per un salt de línia. Si cliqueu sobre un ID individual, es copia només aquell. L'estat de la pàgina es mostra amb missatges clars: «Ready.» (en repòs), «Generated.» (després de generar), «Copied all!» (després de copiar tots). Si l'alfabet és invàlid, el comptador d'IDs es mostra com a 0 i el botó de copiar està desactivat.

Seguretat i privadesa: generació local al navegador

Un aspecte clau d'aquest generador és que tota la generació es realitza al navegador de l'usuari, sense enviar cap dada a cap servidor (BroBroGo, en aquest cas, no rep la llista d'IDs, la longitud ni l'alfabet). Això és fonamental per a usuaris conscients de la privadesa i per a aplicacions on els identificadors no han de ser coneguts per tercers. L'ús de crypto.getRandomValues garanteix que la font d'aleatorietat és criptogràficament segura, a diferència de Math.random() que és pseudònom i no apropiat per a generació de tokens de seguretat. Aquesta API està disponible a tots els navegadors moderns i proporciona nombres aleatoris impredictibles. El generador no emmagatzema cap informació localment (cookies, localStorage), de manera que cada vegada que carregueu la pàgina comenceu des de zero. Això pot ser un avantatge: no hi ha risc de filtracions per dades persistents.

Escollir la longitud i l'alfabet adequats per a cada ús

La tria de la longitud i l'alfabet depèn del context. Per a enllaços curts en una aplicació web amb milions d'usuaris, un Nano ID de 8–10 caràcters amb alfabet alfanumèric pot ser suficient si la taxa de generació no és massiva. Per a claus primàries de bases de dades on la col·lisió seria greu, es recomana la longitud per defecte de 21 caràcters o fins i tot 36 si voleu un marge extrem. La probabilitat de col·lisió es pot estimar amb la fórmula del problema d'aniversari aproximada: per a M combinacions possibles (M = mida_alfabet^longitud), la probabilitat de col·lisió entre N IDs és aproximadament N²/(2M). Amb l'alfabet URL‑safe de 64 caràcters i longitud 21, M ≈ 2^126, cosa que fa que la probabilitat sigui negligible fins i tot per a milers de milions d'IDs.

L'edició manual de l'alfabet és útil si heu d'evitar caràcters que puguin ser confosos (per exemple, l i 1 en alguns tipus de lletra), o si necessiteu que els IDs siguin llegibles per humans (alfabet només de lletres minúscules). Un error comú és utilitzar un alfabet massa petita (per exemple, només dígits) amb una longitud curta, cosa que redueix dràsticament les combinacions possibles i augmenta el risc de col·lisió. Per exemple, amb 6 dígits (alfabet de 10 caràcters), el nombre de combinacions és 10^6 = 1 milió. Si genereu 1000 IDs, la probabilitat de col·lisió és d'aproximadament 0,5 (segons la fórmula). Amb alfabet de 64 caràcters i longitud 6, el nombre de combinacions és 64^6 ≈ 6,87×10^10, molt més segur. Per tant, val la pena fer càlculs ràpids abans de decidir.

Preguntes freqüents

Quina és la longitud per defecte d'un Nano ID en aquesta pàgina?
21 caràcters, amb l'alfabet URL‑safe predeterminat.

Puc utilitzar una longitud menor de 2?
No. El lliscador té un valor mínim de 2. Amb 1 caràcter, l'ID seria trivial i el generador ho rebutja.

Què passa si l'alfabet només conté un caràcter?
Els resultats es netegen, el comptador d'IDs es mostra com a 0, el botó «Copiar tots» es desactiva i apareix el missatge d'error: «L'alfabet necessita almenys 2 caràcters diferents.»

Quants IDs puc generar alhora?
Entre 1 i 100, ambdós inclosos.

Els IDs es generen de manera segura? Es transmeten al servidor?
Sí, es generen de manera criptogràficament segura amb crypto.getRandomValues del navegador. No s'envia cap dada a cap servidor. Tot el procés és local.

Quina diferència hi ha entre Nano ID i un UUID?
Nano ID és més curt (21 vs. 36 caràcters per defecte), totalment personalitzable en longitud i alfabet, i no depèn d'un format fix com el UUID. Per a moltes aplicacions, Nano ID ofereix una resistència a col·lisions comparable amb molt menys overhead.