RevealTheme logo

Generatore di UUID

Genera UUID v4 (identificatori univoci universali casuali). Ogni clic ne produce uno nuovo.

Come usare questo strumento

  1. 1

    Click the Generate UUID button to produce a fresh random v4 UUID.

  2. 2

    Read the 36-character identifier shown in the canonical 8-4-4-4-12 format below the button.

  3. 3

    Click Copy to put the UUID on your clipboard for pasting into code, a database, or a config file.

  4. 4

    Click Generate UUID again whenever you need another one — every click replaces the value with a brand-new random UUID.

Che cos'è un UUID e perché lo usa il software?

Un UUID (Universally Unique Identifier, a volte chiamato GUID nei contesti Microsoft) è un valore a 128 bit usato per identificare entità senza bisogno di coordinamento tra i sistemi. L'idea di un UUID è che due programmi distinti, in esecuzione su due macchine distinte e senza conoscersi tra loro, possono generare UUID e presumere con sicurezza che non collideranno mai. Questa proprietà abilita la progettazione di sistemi distribuiti: può lasciare che qualsiasi servizio conii identificatori localmente senza un contatore centrale, unire database senza rinumerare le righe e pregenerare identificatori sul client prima ancora che il server veda la richiesta. Gli UUID hanno cinque versioni canoniche definite dalla RFC 4122: v1 (basato su tempo + indirizzo MAC, espone l'ora di creazione e l'identità della macchina), v3 (hash MD5 di uno spazio dei nomi + nome), v4 (casuale, il più comune), v5 (hash SHA-1 di uno spazio dei nomi + nome). La RFC 9562 ha aggiunto la v6 (ordinato per tempo, come la v1 ma senza esporre il MAC) e la v7 (timestamp Unix + casuale, progettata specificamente per le chiavi primarie dei database perché si ordina cronologicamente). Questo strumento genera UUID v4 tramite crypto.randomUUID(), che utilizza una casualità crittograficamente robusta proveniente dal sistema operativo sottostante del browser, la stessa fonte da cui provengono le chiavi TLS. L'output è identico byte per byte a quello di uuid.uuid4() di Python, crypto.randomUUID() di Node e google/uuid.NewRandom() di Go.

Casi d'uso comuni

  • Chiavi primarie del database: sostituiscono gli interi a incremento automatico quando devi unire database o generare ID lato client.

  • Identificatori di sessione nei cookie: abbastanza lunghi da rendere computazionalmente irrealizzabile indovinare per forza bruta un ID di sessione valido.

  • Chiavi di idempotenza per le richieste API: ripeti la richiesta in sicurezza; il server deduplica tramite UUID.

  • Identificatori dei file caricati: assegna ai file caricati un nome basato sull'UUID per evitare collisioni di percorso e non esporre i nomi di file originali.

  • ID di tracciamento distribuito: ogni richiesta riceve un UUID, propagato attraverso i servizi per correlare i log.

  • Identificatori di fixture di test: casualità prevedibile per i dati di test senza dover coordinare gli ID tra i casi di test.

Domande frequenti

Cosa significa v4?
Versione 4: viene generato a partire da 122 bit di casualità più 6 bit fissi di versione/variante. Altre versioni: la v1 si basa su timestamp + MAC (non la usi; espone l'identità della macchina e l'ora), la v3/v5 sono hash deterministici di uno spazio dei nomi + nome (utili per identificatori derivati stabili), la v7 è casuale con prefisso di timestamp (eccellente per i database perché si ordina cronologicamente). Per la maggior parte dei casi, la v4 è la scelta predefinita corretta.
Quanto sono davvero univoci gli UUID?
Gli UUID v4 hanno 122 bit effettivi di casualità: 5,3×10^36 valori possibili. Dovrebbe generare 2,71 trilioni di UUID prima di raggiungere una probabilità di collisione del 50%. Per contestualizzare, se generasse un miliardo di UUID al secondo, le servirebbero 85 anni per raggiungere quella soglia. Le collisioni pratiche non si verificano con un buon generatore di numeri casuali.
Devo usare v4 o v7 per le chiavi primarie dei database?
La v7 è migliore per i database. Gli UUID v4 sono casuali, il che significa che le nuove righe si disperdono in modo casuale tra gli indici B-tree, provocando il rigonfiamento dell'indice e inserimenti lenti su larga scala. La v7 antepone il timestamp, quindi i nuovi UUID si ordinano sempre dopo quelli vecchi, mantenendo i pattern di inserimento sequenziali. PostgreSQL, MySQL e SQL Server traggono vantaggio dalla v7. Se la sua libreria non supporta ancora la v7, gli ULID sono un'alternativa popolare con la stessa proprietà.
È sicuro usare crypto.randomUUID()?
Sì. È specificato dalla WHATWG e implementato in tutti i browser moderni tramite il generatore crittografico di numeri casuali del sistema operativo (la stessa fonte da cui provengono le chiavi TLS). L'output è imprevedibile e distribuito uniformemente su tutto lo spazio degli UUID v4.
Qual è la differenza tra UUID e GUID?
Sono funzionalmente identici: GUID è il termine Microsoft per lo stesso concetto. Il formato dei byte differisce in alcune API Microsoft (il Guid.ToByteArray() di .NET usa un ordine dei byte misto nei primi tre campi), quindi quando l'interoperabilità è importante, faccia attenzione all'ordine dei byte. Il formato di stringa canonico (8-4-4-4-12) è identico.
Posso accorciare un UUID per usarlo negli URL?
Sì: codifichi i 128 bit in Base62 o Base64 invece del formato esadecimale canonico. Base62 le dà 22 caratteri; Base64 ne dà 22 con riempimento o 22 nella sua variante sicura per URL. Alcune librerie usano anche formati di 'UUID corto'. I bit sottostanti non cambiano; differisce solo la codifica di visualizzazione.
Perché il mio UUID inizia con gli stessi caratteri di un altro?
È una coincidenza: gli UUID v4 sono casuali. Con 36 caratteri esadecimali in totale e solo 22 caratteri esadecimali casuali (4 sono riservati a versione/variante e 4 sono trattini), alcune coincidenze di prefisso sono inevitabili quando se ne generano molti. L'UUID completo è univoco anche se i prefissi coincidono.

Strumenti correlati