Generare UUID v4 o v7 nel browser
Un UUID (identificatore univoco universale) è un numero di 128 bit scritto con 32 cifre esadecimali divise in cinque gruppi da 8, 4, 4, 4 e 12 caratteri: 550e8400-e29b-41d4-a716-446655440000. Serve a identificare una riga di database, un file caricato, un ordine o un messaggio senza chiedere il numero successivo a un server centrale. Un GUID (identificatore globale univoco), il nome usato per esempio in C#, è esattamente la stessa cosa: lo strumento li genera e li legge allo stesso modo.
Gli identificatori nascono dal generatore crittografico del tuo browser. Nulla viene inviato al server, nulla viene salvato.
Come si usa
- Scegli la versione: «UUID v4 (casuale)» oppure «UUID v7 (ordinato nel tempo)».
- Indica «Quanti UUID (da 1 a 1000)» e premi «Genera». La barra spaziatrice crea una nuova serie.
- Regola il formato con «Maiuscole», «Senza trattini», «Tra parentesi graffe { }», «Tra virgolette» e «Virgola a fine riga». Con le ultime due spuntate, l'elenco si incolla così com'è in un array JSON o in una query SQL con
IN (...). - Recupera il risultato con «Copia tutto» o «Scarica (.txt)», un UUID per riga.
Il riquadro «Validare o decodificare un UUID» accetta un identificatore con o senza trattini, in maiuscolo, tra parentesi graffe o preceduto da urn:uuid:. Mostra la versione, la variante e, per un v7, la data codificata. Una stringa che non contiene esattamente 32 cifre esadecimali viene rifiutata.
Versione 4 o versione 7?
In un UUID v4, 122 dei 128 bit sono casuali. I 6 restanti indicano la versione (la cifra 4 in posizione 13) e la variante (8, 9, a o b in posizione 17). Non rivela niente, né l'ora né la macchina: è la scelta giusta per token, nomi di file e identificatori visibili in un URL.
Un UUID v7, definito nel 2024 dalla RFC 9562, comincia con l'ora Unix in millisecondi su 48 bit, seguita da 74 bit casuali. Per questo i v7 si ordinano per data di creazione, anche come semplice testo. Come chiave primaria di un database il vantaggio è concreto: le nuove righe finiscono in fondo all'indice invece di sparpagliarsi, con meno frammentazione e meno scritture. Quando lo strumento crea più v7 nello stesso millisecondo, aggiunge un passo casuale alla parte casuale, così l'elenco resta sempre strettamente crescente. Il rovescio della medaglia: un v7 lascia vedere quando è stato creato.
La versione 1 non è proposta, perché contiene l'indirizzo di rete della macchina oltre all'ora e la RFC 9562 raccomanda ormai la versione 7 al suo posto.
Esempio di decodifica: incolla 017f22e2-79b0-7cc3-98c4-dc0c0c07398f. Le prime dodici cifre, 017f22e279b0, valgono 1.645.557.742.000 millisecondi, cioè il 22 febbraio 2022 alle 19:22:22.000 UTC, le 20:22:22 a Roma.
Due UUID possono coincidere?
In teoria sì, in pratica no. Un v4 ha 2 elevato alla 122 combinazioni, circa 5,3 sestilioni (un numero di 37 cifre). Secondo il calcolo del paradosso del compleanno, bisognerebbe generare circa 103.000 miliardi di UUID v4 per avere una probabilità su un miliardo di trovarne due uguali. Con un miliardo di UUID, la probabilità scende a circa 9 su 100 miliardi di miliardi. Il calcolo presuppone un buon generatore casuale, come quello usato da questa pagina. Per i v7, possono somigliarsi solo quelli creati nello stesso millisecondo, e anche allora tutti i 74 bit casuali dovrebbero coincidere.
Domande frequenti
Che differenza c'è tra UUID e GUID?
Nessuna nella sostanza: GUID è un altro nome per lo stesso formato a 128 bit. I GUID si scrivono spesso in maiuscolo tra parentesi graffe, come {3F2504E0-4F89-41D3-9A0C-0305E82C3301}: per questo ci sono le opzioni «Maiuscole» e «Tra parentesi graffe { }».
Meglio salvare l'UUID come testo o in binario?
In binario, 16 byte, se il database lo consente (tipo uuid o BINARY(16)): occupa meno della metà dei 36 caratteri del testo. La forma con i trattini resta per la visualizzazione e le API.
Un UUID può fare da link segreto?
Un v4 creato da un generatore crittografico, come qui, è abbastanza imprevedibile per un link di condivisione. Un v7 no: i suoi primi 48 bit rivelano l'ora esatta di creazione e riducono la parte da indovinare.