Vai al contenuto

Generatore di Nano ID gratuito - ID univoci sicuri e compatibili con URL online

Genera Nano ID sicuri istantaneamente! Strumento online gratuito che crea identificatori univoci compatti e compatibili con URL, il 42% più corti degli UUID. Perfetto per database, API, token e sistemi.

La lunghezza del Nano ID generato (1-100 caratteri)

Seleziona il set di caratteri per il tuo Nano ID

Nano ID Generato

Inserisci un valore per visualizzare i risultati

Visualizzazione

Calcolatore di caricamento...
📚

Documentazione

Un generatore di Nano ID crea una breve stringa casuale di caratteri chiamata Nano ID. I Nano ID fungono da identificatori univoci per elementi come record di database, URL e token API, e due ID generati hanno probabilità estremamente bassa di coincidere.

Che cos'è un Nano ID?

Un Nano ID è una stringa generata casualmente, usata per contrassegnare qualcosa in modo da distinguerlo da ogni altro elemento. Lo sviluppatore software Andrey Sitnik ha creato il formato nel 2017 come alternativa più compatta all'UUID (identificatore universalmente univoco), un identificatore di 36 caratteri ampiamente usato nell'informatica. Un Nano ID predefinito è lungo 21 caratteri, rispetto ai 36 di un UUID: una riduzione di circa 42%.

Come generare un Nano ID con questo strumento

Il generatore in questa pagina crea un Nano ID a partire da due impostazioni.

  1. Lunghezza: un numero intero compreso tra 1 e 100. Il valore predefinito è 21.
  2. Insieme di caratteri: il gruppo di caratteri da cui viene creato l'ID. Il valore predefinito è alfanumerico.

Inserire una lunghezza, scegliere un insieme di caratteri, quindi premere "Genera" per creare un ID. Premere "Copia" per copiarlo oppure "Reimposta" per tornare alla lunghezza 21 e all'insieme alfanumerico. Un nuovo ID viene generato automaticamente anche quando cambia la lunghezza o l'insieme di caratteri. Sotto i pulsanti, lo strumento rappresenta ogni carattere dell'ID come un blocco colorato: blu per una lettera maiuscola, verde per una lettera minuscola, arancione per una cifra e grigio per un segno di punteggiatura.

Se la lunghezza non è un numero intero compreso tra 1 e 100, lo strumento mostra il messaggio "La lunghezza deve essere un numero intero compreso tra 1 e 100" e non produce alcun ID.

Insiemi di caratteri disponibili

Lo strumento offre sette insiemi di caratteri fissi. Non accetta un alfabeto personalizzato digitato dall'utente. L'insieme "Con simboli" aggiunge questi 26 segni di punteggiatura a quelli alfanumerici: ! @ # $ % ^ & * ( ) _ + - = [ ] { } | ; : , . < > ?.

Set di caratteriCaratteri utilizzatiDimensione dell'alfabeto
Alfanumerico (predefinito)A-Z, a-z, 0–962
Sicuro per gli URLA-Z, a-z, 0-9, -, _64
Numerico0–910
AlfabeticoA-Z, a-z52
Minuscoloa-z26
MaiuscoloA-Z26
Con simboliA-Z, a-z, 0–9 e 26 segni di punteggiatura88

L'insieme alfanumerico è selezionato per impostazione predefinita. Esclude il trattino e il carattere di sottolineatura usati nell'insieme sicuro per gli URL, anche se le sole lettere e cifre possono già essere inserite direttamente in un URL senza problemi.

Formula del Nano ID

Un Nano ID viene creato scegliendo casualmente un numero fisso di caratteri da un alfabeto, uno alla volta, mediante un generatore di numeri casuali crittograficamente sicuro. Si tratta di un generatore progettato in modo che il suo output non possa essere previsto in anticipo.

1id = random(alphabet, size)
2

Con le impostazioni predefinite, alphabet contiene 62 caratteri e size è 21.

Esempio di calcolo

Usando l'alfabeto alfanumerico predefinito e una lunghezza di 21, un possibile ID generato è:

1K7pQ2mZxT9vY4nR8jH3wL
2

Ogni carattere viene scelto indipendentemente tra le 62 lettere e cifre, quindi, eseguendo il generatore due volte, è quasi impossibile ottenere la stessa stringa.

Come calcolare la probabilità di collisione

Poiché un Nano ID viene scelto casualmente, è possibile, anche se estremamente improbabile, che due ID generati coincidano. Questo evento è chiamato collisione. La probabilità di almeno una collisione dopo aver generato k ID segue la stessa matematica del "problema del compleanno":

1P(collision) ≈ 1 - e^(-k² / (2n))
2

Qui n è il numero di ID possibili: la dimensione dell'alfabeto elevata alla potenza della lunghezza dell'ID, ovvero n = alphabet_size^length.

Esempio di calcolo

Per l'impostazione predefinita, con un alfabeto di 62 caratteri e una lunghezza di 21 caratteri:

1n = 62^21 ≈ 4.4 × 10^37 possible IDs
2

Risolvendo la formula per una probabilità di collisione dell'1% si ottiene:

1k ≈ 9.4 × 10^17 IDs
2

Ciò significa che è necessario generare circa 940 quadrilioni di ID prima che vi sia anche solo una probabilità dell'1% che due di essi coincidano. Generando un milione di ID al secondo, per raggiungere tale quantità occorrerebbero circa 29.700 anni.

Passando all'alfabeto di 64 caratteri sicuro per gli URL, il numero aumenta leggermente, arrivando a circa 1,3 × 10^18 ID per lo stesso rischio dell'1%, perché l'alfabeto più grande offre più ID possibili tra cui scegliere.

Nano ID a confronto con altri identificatori

TipoLunghezzaNote
Nano ID21 caratteri, lunghezza regolabileCasuale, compatto, non ordinabile in base al tempo
UUID36 caratteriFormato standard, ampiamente supportato, contiene trattini
ULID26 caratteriOrdinabile in base all'ora di creazione
KSUID27 caratteriOrdinabile in base al momento della creazione, include un'indicazione temporale
Intero autoincrementanteVariabileSemplice e sequenziale, ma prevedibile e difficile da coordinare tra database separati

Domande frequenti

Qual è la lunghezza e l'insieme di caratteri predefiniti di un Nano ID?

Il valore predefinito è di 21 caratteri dell'insieme alfanumerico: A-Z, a-z, 0-9, per un totale di 62 caratteri.

Questo strumento supporta un alfabeto personalizzato?

No. Offre sette insiemi di caratteri fissi: alfanumerico, sicuro per gli URL, numerico, alfabetico, minuscolo, maiuscolo e "Con simboli".

In che modo un Nano ID è diverso da un UUID?

Un Nano ID è più corto. Il valore predefinito è di 21 caratteri, rispetto ai 36 caratteri di un UUID: è più corto di circa 42%. Entrambi vengono generati casualmente e non sono sequenziali.

È possibile ordinare un Nano ID in base al momento della sua creazione?

No. I Nano ID sono completamente casuali, quindi non contengono informazioni sul momento in cui sono stati generati. Formati come ULID o KSUID sono invece progettati per essere ordinabili in base al tempo.

È sicuro usare un Nano ID come chiave primaria di un database?

Sì. Deve essere memorizzato in una colonna di testo o stringa anziché numerica, con un indice univoco per velocizzare le ricerche.

Quanti Nano ID possibili esistono?

Dipende dalla lunghezza e dall'insieme di caratteri scelti. Con l'alfabeto predefinito di 62 caratteri e una lunghezza di 21 caratteri, esistono 62^21 ID possibili, circa 4,4 × 10^37.

Riferimenti

  1. Sitnik, Andrey. "Nano ID." GitHub, https://github.com/ai/nanoid.
  2. "Universally unique identifier." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/Universally_unique_identifier.
  3. "ULID Spec." GitHub, https://github.com/ulid/spec.