Come usare il generatore UUID
- Scegli la versione: v4 (casuale) o v7 (ordinata nel tempo).
- Imposta quanti UUID ti servono, da uno a un elenco in blocco.
- Se vuoi, passa alle maiuscole o togli i trattini.
- Copia un singolo valore o l'intero elenco.
Gli UUID vengono generati nel tuo browser con il suo generatore di numeri casuali crittograficamente sicuro. Non vengono mai inviati ai nostri server né salvati lì, quindi nessun altro sa quali identificatori hai creato.
Che cos'è un UUID?
Un UUID (Universally Unique Identifier, identificatore univoco universale) è un valore a 128 bit che può essere generato in modo indipendente su qualsiasi macchina con una probabilità trascurabile di coincidere con un altro. Non serve un registro centrale né una richiesta al database, il che rende gli UUID ideali per sistemi distribuiti, client offline e unione di dati provenienti da più fonti. Sono anche una scelta comune per gli ID delle richieste e per il claim jti all'interno dei token che puoi esaminare con il decoder JWT. GUID (Globally Unique Identifier) è il nome che Microsoft usa per la stessa cosa.
Gli UUID si scrivono come 32 cifre esadecimali in cinque gruppi separati da trattini, secondo lo schema 8-4-4-4-12 (36 caratteri in totale):
f47ac10b-58cc-4372-a567-0e02b2c3d479
^ ^
| variante (8, 9, a o b)
versione (4)
La prima cifra del terzo gruppo è la versione; la prima cifra del quarto gruppo codifica la variante. La specifica attuale è la RFC 9562 (2024), che ha sostituito la RFC 4122 e ha aggiunto le versioni 6, 7 e 8.
Versione 4 e versione 7 a confronto
| UUID v4 | UUID v7 | |
|---|---|---|
| Contenuto | 122 bit casuali (6 bit fissi per versione e variante) | Timestamp Unix a 48 bit in millisecondi, poi bit casuali |
| Ordinamento | Casuale | Più o meno cronologico |
| Rivela | Niente | Il momento della sua creazione |
| Ideale per | Token, ID pubblici, uso generico | Chiavi primarie di database, log di eventi |
Perché v7 è migliore per gli indici di database
Le chiavi primarie di solito sono memorizzate in un indice B-tree. I valori v4 casuali finiscono in posizioni casuali, quindi ogni inserimento tocca una pagina diversa, il che provoca suddivisioni di pagina, scarsa località della cache e indici gonfiati nelle tabelle grandi. Poiché gli UUID v7 iniziano con un timestamp, i nuovi valori vengono aggiunti vicino alla fine dell'indice, proprio come un intero auto-incrementale, pur mantenendo i vantaggi di ID univoci a livello globale e generati dal client.
Errori comuni
- Salvare gli UUID come testo. Una stringa di 36 caratteri occupa più del doppio dello spazio dei 16 byte grezzi. Usa un tipo
uuidnativo (PostgreSQL) oBINARY(16)(MySQL). - Usare gli UUID come segreti. I valori v4 sono difficili da indovinare, ma sono identificatori, non credenziali. I valori v7 rivelano il momento della loro creazione e sono in parte prevedibili. Per il reset delle password e le chiavi API usa un token casuale dedicato.
- Confronti sensibili a maiuscole e minuscole. La RFC 9562 prevede un output in minuscolo ma richiede che l'input sia accettato sia in maiuscolo sia in minuscolo. Normalizza le stringhe prima di confrontarle.
- Fonti casuali deboli. Generare UUID v4 con
Math.random()ne compromette l'unicità. Usa un generatore crittograficamente sicuro.
Generare UUID nel codice
// JavaScript (browsers and Node.js)
crypto.randomUUID(); // v4
# Python
import uuid
uuid.uuid4()
uuid.uuid7() # Python 3.14+
-- PostgreSQL
SELECT gen_random_uuid(); -- v4 (PostgreSQL 13+)
SELECT uuidv7(); -- PostgreSQL 18+
// Java
java.util.UUID.randomUUID();
// C# / .NET
Guid.NewGuid(); // v4
Guid.CreateVersion7(); // .NET 9+
# Shell (Linux, macOS)
uuidgen
Domande frequenti
Due UUID possono mai essere uguali?
In teoria sì; in pratica no. Con 122 bit casuali, il numero di valori v4 possibili è così grande che dovresti generare miliardi di UUID al secondo per molti decenni prima che un solo duplicato diventi probabile. Le collisioni nei sistemi reali derivano quasi sempre da un generatore di numeri casuali difettoso o da dati copiati, non dal caso.
Qual è la differenza tra UUID e GUID?
In pratica nessuna. GUID è il termine usato nelle tecnologie Microsoft; formato e dimensione sono gli stessi.
Meglio usare v4 o v7?
Usa v7 per le chiavi primarie di database e per tutto ciò che vuoi ordinare per data di creazione. Usa v4 quando l'ID non deve rivelare nulla, come nel caso degli identificatori esposti negli URL pubblici.
L'UUID nil è valido?
Sì. 00000000-0000-0000-0000-000000000000 è lo speciale UUID nil, e la RFC 9562 definisce anche un UUID max composto solo da cifre f. Entrambi vengono spesso usati come segnaposto.
Aggiornato