UUID
Generatore UUID
Genera UUID casuali versione 4.
Informazioni sugli UUID
Un UUID (Universally Unique Identifier) è un valore a 128 bit, quasi sempre mostrato come 32 cifre esadecimali in cinque gruppi separati da trattini. Un UUID versione 4 viene generato da bit casuali, quindi due UUID generati indipendentemente non sono, in pratica, mai uguali.
La versione 4, generata qui, è solo una delle diverse versioni di UUID attivamente in uso. La versione 1 codifica l'indirizzo MAC della macchina generatrice e un timestamp — utile per l'ordinamento, ma rivela informazioni che un ID casuale non divulga. Le versioni 3 e 5 sono hash deterministici di un namespace e un nome, quindi gli stessi input producono sempre lo stesso UUID, il che è utile per identificatori indirizzati per contenuto. La più recente versione 7 impacchetta un timestamp in millisecondi nei bit iniziali proprio perché gli UUID si ordinino cronologicamente, cosa che la pura casualità della versione 4 non può mai offrire.
Dove lo incontrerai
- Chiavi primarie per righe di database che non devono essere sequenziali
- Chiavi di idempotenza per le richieste API
- Identificatori univoci per sessioni, richieste o eventi di sistemi distribuiti
- Identificatori anonimi che, a differenza degli ID auto-incrementali, non rivelano l'ordine di creazione
Domande frequenti
Due UUID generati possono mai collidere?
In teoria sì, in pratica no — gli UUID versione 4 hanno 122 bit casuali, quindi la probabilità di una collisione è trascurabile anche su miliardi di ID.
Gli UUID sono ordinabili per data di creazione?
La versione 4 no. Se hai bisogno di ID ordinabili per data, valuta alternative ordinate nel tempo come UUIDv7 o ULID.
C'è qualcosa di segreto codificato in un UUID?
No, un UUID v4 è solo bit casuali — non codifica il server, l'utente o il momento che lo ha generato.
Perché non usare semplicemente UUIDv1 o il più recente UUIDv7?
Versioni diverse scambiano proprietà diverse. UUIDv4, generato da questo strumento, è pura casualità senza ordine e senza informazioni incorporate — la scelta giusta quando non vuoi che un ID riveli quando o dove è stato creato. UUIDv1 incorpora un timestamp e un indirizzo MAC; UUIDv7 incorpora solo un timestamp, dando ID che si ordinano per tempo di creazione, cosa che i database indicizzano molto più efficientemente dei valori v4 casuali. Scegli v7 se le prestazioni dell'ordine di inserimento contano e rivelare il tempo di creazione va bene.