Generatore di Nano ID

Genera in blocco, direttamente nel navigatore, identificativi univoci brevi e sicuri per gli indirizzi web. Potete scegliere liberamente l'insieme dei caratteri — predefinito, alfanumerico, minuscolo, maiuscolo, numerico o esadecimale — e la lunghezza: ideale quando serve un identificativo più corto di un UUID.

Confronto fra i formati di identificativo

Formato Lunghezza Caratteri distinti Ordinabile per generazione Descrizione
Nano ID 21 caratteri predefiniti (da 1 a 64 a scelta) 64 caratteri No (del tutto casuale) Identificativo casuale breve, composto soltanto di caratteri sicuri per gli indirizzi web. Insieme dei caratteri e lunghezza si possono cambiare liberamente.
UUID v4 36 caratteri (compresi quattro trattini) 16 caratteri (esadecimale) No (del tutto casuale) Identificativo a 128 bit standardizzato dalla norma RFC 9562. La forma standard è la notazione esadecimale separata da trattini.
ULID 26 caratteri 32 caratteri (Base32) Sì (i primi dieci caratteri sono la marca temporale) Reca in testa una marca temporale al millesimo di secondo e si può quindi ordinare come stringa secondo l'ordine di generazione.

Che cos'è Nano ID

Nano ID è un procedimento che genera brevi identificatori casuali composti unicamente da caratteri sicuri per gli URL. Per impostazione predefinita combina 21 caratteri tratti da un alfabeto di 64 (A-Za-z0-9_-), il che lo mantiene più corto di un UUID conservando una casualità ampiamente sufficiente all'uso pratico. Questo strumento vi lascia fissare liberamente l'alfabeto (predefinito, alfanumerico, minuscole, maiuscole, cifre o esadecimale), la lunghezza e la quantità, e creare identificatori in blocco.

La generazione si svolge interamente nel vostro browser per mezzo dei numeri casuali crittograficamente sicuri dell'API Web Crypto, perciò nulla viene mai inviato ai server di toolbase.cc. Non dovete portare alcun segreto in un modulo e potete copiare gli identificatori così come sono per impiegarli come slug di URL, dati di prova, nomi di file e simili.

Come usare Nano ID

  1. Scegliere l'alfabeto Selezionate l'alfabeto adatto al vostro scopo fra predefinito (i 64 caratteri sicuri per gli URL), alfanumerico, solo minuscole, solo maiuscole, solo cifre ed esadecimale.
  2. Fissare la lunghezza Indicate il numero di caratteri degli identificatori. Più li accorciate, più sale la probabilità di collisione, perciò tenete presente l'equilibrio proprio del vostro scopo.
  3. Indicare quanti generarne Inserite quanti identificatori volete in una volta. Se ve ne servono più d'uno — per creare dati di prova in blocco, per esempio — li precisate tutti qui.
  4. Premere il pulsante di generazione Alla pressione, gli identificatori conformi alle vostre impostazioni vengono creati subito nel browser e presentati in elenco.
  5. Copiarli Ciascun identificatore ha il proprio pulsante di copia; se volete l'insieme, copia tutto li prende insieme.

Consigli per sfruttarlo al meglio

  • I Nano ID sono generati con numeri casuali crittograficamente sicuri, tramite l'interfaccia crittografica del navigatore, e l'elaborazione avviene localmente: nulla giunge mai ai serventi di toolbase.cc.
  • L'alfabeto predefinito di 64 caratteri, A-Za-z0-9_-, non contiene simboli né spazi e si può quindi usare in sicurezza come percorso di un indirizzo web o nome di file.
  • Limitando l'insieme alle sole cifre o all'esadecimale, potete generare identificativi conformi al formato di un sistema esistente, per esempio numeri d'ordine composti di sole cifre.
  • Più si accorcia la lunghezza, più cresce la probabilità di collisione. Nei sistemi che emettono molti identificativi conviene restare intorno ai 21 caratteri predefiniti, mentre per pochi dati di prova possono bastare otto o dieci caratteri.
  • Aumentando il numero di identificativi da generare e usando il pulsante che li copia tutti, preparerete in un attimo dati di prova o dati iniziali.

Quando Nano ID torna utile

Generare slug di URL

Come identificatore univoco nel percorso di un URL abbreviato o di un collegamento di condivisione, una stringa sicura per gli URL, priva di simboli scomodi, si impiega esattamente così com'è.

Caricare dati di prova o fittizi

Come chiavi primarie o identificatori dei record di esempio che caricate in un database durante lo sviluppo, ne generate quanti ve ne servono in una sola volta.

Emettere identificatori di sessione e di richiesta

Come identificatore provvisorio per il tracciamento dei log o la distinzione delle richieste API, vi fornisce una stringa breve e maneggevole.

Numerare nomi di file senza collisione

Comodo quando volete aggiungere un identificatore casuale al nome di salvataggio di un file caricato e impedire che file omonimi si sovrascrivano.

Emettere chiavi API e codici di riferimento semplici

Non per credenziali di produzione, ma facilmente a portata di mano per numerare i brevi codici di riferimento di strumenti interni e ambienti di prova.

I termini impiegati qui

Nano ID
Un procedimento di generazione di brevi identificatori casuali composti unicamente da caratteri sicuri per gli URL. Per impostazione predefinita assicura un'elevata casualità con 21 caratteri da un alfabeto di 64.
UUID
Un identificatore da 128 bit normalizzato da una RFC. La notazione esadecimale di 36 caratteri separata da trattini è largamente impiegata come sua forma standard.
ULID
Un identificatore di 26 caratteri che porta in testa una marca temporale al millisecondo. A differenza di Nano ID e UUID, si ordina come stringa nell'ordine di generazione.
API Web Crypto
L'interfaccia per il lavoro crittografico che i browser forniscono di serie. Sa generare numeri casuali difficili da prevedere, ed è su questo che poggia la sicurezza degli identificatori.
Numeri casuali crittograficamente sicuri
Numeri casuali concepiti perché il valore successivo non possa essere previsto statisticamente. Abbassano il rischio che un identificatore venga indovinato o contraffatto.
Probabilità di collisione
La probabilità che due generazioni distinte producano per caso il medesimo identificatore. Più numerosi i caratteri e più ampio l'alfabeto, più essa diminuisce.
Problema dei compleanni
Il fenomeno per cui quante più persone vi sono in un gruppo, tanto più è probabile che due condividano il compleanno. Serve all'approssimazione che stima la probabilità di collisione degli identificatori.

Domande frequenti

Se volete un identificativo breve da usare direttamente in un indirizzo web o in un nome di file, Nano ID è la scelta adatta. Se vi occorre un formato standardizzato da una norma o se conta l'interoperabilità con altri sistemi, è più prudente l'UUID, in particolare la versione 4.

Con la configurazione predefinita di 21 caratteri su un insieme di 64, la casualità equivale a 126 bit e il rischio è nella pratica trascurabile: il numero di generazioni necessario perché la probabilità di collisione raggiunga il cinquanta per cento è di circa 1,09 per dieci alla diciannovesima.

Sì, ma come per l'UUID v4 la totale casualità rende l'inserimento negli indici ad albero meno efficiente di un contatore progressivo. Se vi serve l'ordinamento secondo l'ordine di inserimento, valutate formati come ULID, che recano in testa una marca temporale.

Sì. A parità di lunghezza, un insieme di caratteri più ristretto riduce la casualità e quindi la resistenza alle collisioni. Per ottenere con le sole dieci cifre la stessa sicurezza di un alfabeto di 64 caratteri occorre una lunghezza maggiore.
Tool-kun

A proposito — perché i Nano ID possono essere più corti degli UUID

Nano ID è una libreria di generazione di identificativi scritta in JavaScript e pubblicata nel 2017 da Andrey Sitnik, l'autore di PostCSS. Più breve di un UUID, leggera e priva di dipendenze — poche centinaia di byte di codice — e insieme fondata su numeri casuali crittograficamente sicuri, si è guadagnata un tale consenso da registrare decine di milioni di scaricamenti settimanali ed è diventata una libreria di riferimento.

La brevità di un identificativo dipende dall'ampiezza dell'insieme dei caratteri. Un UUID rappresenta 128 bit con le sole sedici cifre esadecimali e richiede perciò 36 caratteri; Nano ID, usandone 64, esprime una casualità paragonabile — 126 bit nella configurazione predefinita — in soli 21 caratteri. La ragione sta nella maggiore informazione per carattere: sei bit contro i quattro dell'esadecimale.

I 126 bit di casualità della configurazione predefinita, cioè 21 caratteri su 64, equivalgono press'a poco ai 122 bit di un UUID v4. Il numero di identificativi da generare perché la probabilità di collisione raggiunga il cinquanta per cento si calcola, con la formula approssimata del problema dei compleanni, in circa 1,09 per dieci alla diciannovesima: nella pratica non c'è di che preoccuparsi.