← Tutti gli strumenti

Generatore di UUID (v4 GUID)

Genera UUID (GUID) v4 casuali all'istante nel browser. Scopri cos'è un UUID a 128 bit, le differenze tra versioni, le probabilità di collisione e quando utilizzarli.

Cos'è davvero un UUID

Un UUID, abbreviazione di Universally Unique Identifier, è un valore a 128 bit usato per etichettare qualcosa senza dover chiedere il permesso a nessuno. Potresti vederlo anche chiamato GUID, o Globally Unique Identifier, che è semplicemente il nome che Microsoft ha dato alla stessa idea all'interno di Windows e del mondo .NET. I due termini descrivono lo stesso numero a 128 bit in quasi tutti i casi che contano, quindi quando un collega dice GUID e tu dici UUID, state quasi sempre parlando della stessa identica cosa.

Quei 128 bit vengono normalmente scritti come 32 cifre esadecimali suddivise in cinque gruppi da trattini, con uno schema 8-4-4-4-12. Un valore tipico si presenta come 123e4567-e89b-12d3-a456-426614174000. I trattini non portano alcun significato proprio; esistono puramente perché un essere umano possa leggere il valore senza perdersi. Ogni carattere è una cifra esadecimale da 0 a f, motivo per cui un UUID appare più denso di un numero comune anche se, sotto la superficie, è semplicemente un intero molto grande.

Token esadecimale astratto e luminoso che rappresenta un identificatore univoco a 128 bit su uno sfondo indaco scuro
Un UUID è un numero a 128 bit, scritto come 32 cifre esadecimali in cinque gruppi separati da trattini.

Le versioni, e perché la v4 vince

Lo standard definisce diverse versioni, che differiscono per come vengono riempiti i bit. La versione 1 è basata sul tempo: intreccia il timestamp corrente e l'indirizzo MAC di rete della macchina. Questo rende i valori v1 ordinabili per data di creazione, ma rivela anche informazioni su dove e circa quando sono stati generati, il che non è sempre gradito. Le versioni 3 e 5 sono basate sul nome, effettuando l'hash di uno spazio dei nomi più un nome in modo che lo stesso input produca sempre lo stesso identificatore.

La versione 4 segue una strada completamente diversa. È quasi pura casualità. Dei 128 bit, sei sono riservati per contrassegnare la versione e la variante, lasciando 122 bit da riempire con dati casuali. Nessun timestamp, nessun indirizzo MAC, nessuno spazio dei nomi, solo rumore. Ecco esattamente perché la maggior parte dei generatori, incluso questo, produce la v4 per impostazione predefinita. Non rivela nulla sul dispositivo o sul momento della creazione, e non richiede alcun coordinamento tra le parti che lo generano. Lo strumento su questa pagina funziona interamente nel tuo browser, quindi i valori casuali non lasciano mai la tua macchina.

Quanto è improbabile una collisione

Il timore ragionevole è che due UUID casuali possano un giorno essere identici. Con 122 bit casuali, lo spazio dei possibili valori v4 è 2 elevato alla potenza 122, che è circa 5,3 seguito da 36 zeri. Per dirlo in termini umani, dovresti generare miliardi di UUID al secondo per molti decenni prima che la probabilità di un singolo duplicato salisse a qualcosa di misurabile. Lo standard stesso descrive la probabilità di una collisione come abbastanza vicina allo zero da essere trascurabile. In pratica i team trattano la v4 come unica e vanno avanti, e hanno ragione.

Innumerevoli chiavi luminose distinte che fluttuano in un vasto spazio scuro senza duplicati, con accenti ciano e dorati
Il pool di possibili valori v4 è così vasto che le collisioni sono praticamente impossibili.

Dove gli sviluppatori li usano

Poiché l'unicità non richiede un'autorità centrale, gli UUID brillano nei contesti in cui il coordinamento è costoso o impossibile. Sono la scelta naturale per le chiavi primarie dei database, specialmente quando più servizi inseriscono righe e non puoi fermarti a chiedere a un contatore condiviso il numero successivo. Nei sistemi distribuiti, due nodi agli antipodi del pianeta possono generare identificatori nello stesso istante senza mai collidere. Vengono anche usati come chiavi di idempotenza delle API, dove un client allega un UUID a una richiesta così il server può ignorare tranquillamente un duplicato in caso di retry di rete. Token di sessione, nomi di file, ID di eventi e chiavi di messaggi fanno tutti affidamento sulla stessa proprietà.

UUID rispetto agli ID auto-incrementali

L'alternativa classica è l'intero auto-incrementale: 1, 2, 3 e così via. Gli ID sequenziali sono compatti, si ordinano naturalmente e sono facili da leggere, ma hanno veri svantaggi. Rivelano quanti record esistono e permettono a estranei di indovinare i valori vicini, e costringono ogni inserimento a passare per un singolo contatore, che diventa un collo di bottiglia quando si partiziona un database o si fondono dati da molte fonti. Gli UUID risolvono questi problemi permettendo a qualsiasi parte di generare una chiave in modo indipendente e non rivelando nulla su volume o ordine. Il compromesso è la dimensione e una minore località negli indici. Per sistemi che scalano orizzontalmente o che devono nascondere i propri interni, quel compromesso vale solitamente la pena. Puoi esplorare questo e strumenti simili tramite la nostra raccolta di generatori, o sfogliare il più ampio insieme di strumenti per sviluppatori per building block correlati.

Domande frequenti

Un GUID è lo stesso di un UUID?

Per uso quotidiano, sì. GUID è il nome di Microsoft per lo stesso identificatore a 128 bit. L'unica vera differenza riguarda l'ordinamento dei byte nella forma binaria grezza su alcuni sistemi Windows; in forma stringa sono identici e intercambiabili.

Quale versione di UUID genera questo strumento?

Genera la versione 4, la variante casuale. Dei suoi 128 bit, 122 vengono riempiti con dati casuali, il che rende ogni valore estremamente improbabile che si ripeta e significa che non contiene timestamp né informazioni sul dispositivo.

Due UUID possono mai essere uguali?

In teoria la probabilità non è esattamente zero, ma con circa 5,3 per 10 elevato a 36 possibili valori v4 è così piccola da essere considerata trascurabile. Dovresti generare numeri astronomici di UUID prima che una collisione diventasse probabile.

Perché usare un UUID invece di un numero auto-incrementale?

Gli UUID possono essere creati indipendentemente da qualsiasi servizio senza un contatore condiviso, non rivelano conteggi o ordine dei record, e rendono indolore la fusione di dati da molte fonti. Gli ID auto-incrementali sono più piccoli ma diventano un collo di bottiglia e perdono informazioni su larga scala.

Gli UUID vengono generati su un server?

No. Questo strumento funziona interamente nel tuo browser, quindi i valori casuali vengono prodotti localmente e non vengono mai inviati da nessuna parte. Questo lo rende sicuro da usare per chiavi e token che intendi tenere privati.

Cosa significa il pattern con i trattini?

Il raggruppamento 8-4-4-4-12 è solo una convenzione di leggibilità. I trattini non trasportano dati; dividono le 32 cifre esadecimali in blocchi in modo che le persone possano scansionare e confrontare i valori più facilmente.