Generatore UUID
Genera UUID v4 casuali — uno o molti.
Cos'è un UUID?
Un UUID (Universally Unique Identifier) è un numero a 128 bit usato per identificare in modo univoco informazioni nei sistemi distribuiti senza richiedere un'autorità centrale. Gli UUID sono standardizzati nella RFC 4122 e vengono usati ovunque — dalle chiavi primarie dei database e il tracciamento delle richieste API alla gestione delle sessioni e la denominazione dei file.
Il formato UUID standard è di 36 caratteri con quattro trattini: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, dove M indica la versione (1–5) e N indica la variante. La versione più comunemente usata è UUID v4, che genera identificatori usando casualità crittografica. Questo strumento genera UUID v4 per impostazione predefinita.
Formato UUID v4
UUID v4 usa 122 bit casuali (i restanti 6 bit codificano la versione e la variante). Il formato è xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx dove ogni x è una cifra hex casuale e y è uno tra 8, 9, A o B. Il 4 nel terzo gruppo lo identifica come versione 4. Ogni UUID v4 viene generato in modo indipendente usando casualità crittografica.
Come usare questo strumento
Fare clic sul pulsante genera per creare un nuovo UUID v4. Ogni clic produce un identificatore fresco e crittograficamente casuale. È possibile generare più UUID contemporaneamente per operazioni in batch. Fare clic sul pulsante copia per copiare l'UUID negli appunti per l'uso nel codice, nelle configurazioni o nei database.
Casi d'uso comuni degli UUID
- Chiavi primarie dei database: gli UUID consentono ai sistemi distribuiti di creare record in modo indipendente senza collisioni di chiavi, a differenza degli interi auto-incrementali che richiedono coordinamento.
- ID di richieste API: allegare un UUID a ogni richiesta API per il tracciamento end-to-end tra microservizi.
- Token di sessione: creazione di identificatori di sessione unici impossibili da indovinare.
- Nomi di file: generazione di nomi di file unici per evitare collisioni quando più utenti caricano contemporaneamente.
- Chiavi di idempotenza: usare UUID nelle API di pagamento per garantire che la stessa transazione non venga elaborata due volte.
Probabilità di collisione
UUID v4 ha 122 bit casuali, producendo 5,3 × 10³⁶ valori possibili. La probabilità di generare due UUID identici è astronomicamente piccola. Sarebbe necessario generare 2,71 × 10¹⁸ UUID (2,71 quintilioni) prima di raggiungere una probabilità del 50% di una singola collisione. In termini pratici, le collisioni non sono una preoccupazione realistica per nessuna applicazione.
UUID nil
L'UUID nil (00000000-0000-0000-0000-000000000000) è un valore speciale definito nella RFC 4122 come segnaposto o valore predefinito. Alcune applicazioni lo usano per rappresentare "nessun valore" o "sconosciuto" nelle colonne del database di tipo UUID, simile a come null funziona per altri tipi di dati.
Confronto delle versioni UUID
UUID v1 usa il timestamp corrente e l'indirizzo MAC del dispositivo — veloce ma potenzialmente rivela informazioni sul dispositivo. UUID v3 e v5 generano UUID deterministici da un namespace e un nome usando rispettivamente MD5 e SHA-1. UUID v4 usa pura casualità, offrendo la migliore combinazione di unicità, semplicità e privacy. UUID v7 (bozza standard) combina un prefisso timestamp con casualità per UUID ordinabili temporalmente.
Il mio UUID è sicuro?
Sì. La generazione usa l'API nativa crypto.randomUUID() del browser, che fornisce casualità crittograficamente sicura. Tutta l'elaborazione avviene localmente sul dispositivo. Nessun UUID viene registrato, archiviato o trasmesso a qualsiasi server.
Domande frequenti
Devo usare UUID o ID auto-incrementali?
Gli UUID sono migliori per i sistemi distribuiti, le architetture a microservizi e qualsiasi scenario in cui i record vengono creati su più server. Gli ID auto-incrementali sono più semplici, più piccoli (4–8 byte vs. 16 byte) e più efficienti per l'indicizzazione dei database. Scegliere in base all'architettura — i sistemi centralizzati possono usare l'auto-incremento, i sistemi distribuiti beneficiano degli UUID.
Gli UUID devono essere memorizzati come stringhe in un database?
No. La maggior parte dei database supporta un tipo UUID nativo che memorizza il valore come 16 byte invece dei 36 byte della rappresentazione stringa. PostgreSQL ha un tipo di colonna UUID, MySQL può usare BINARY(16) e MongoDB usa il proprio sottotipo UUID binario. Usare tipi nativi risparmia spazio di archiviazione e migliora le prestazioni delle query.