Generatore UUID

Pubblicità

Generi identificatori univoci universali (UUID) per le Sue applicazioni.

Pubblicità

Informazioni su questo strumento

L'Universally Unique Identifier (UUID) è uno dei mattoni fondamentali dell'informatica distribuita moderna. Standardizzato per la prima volta nel 1997 attraverso la specifica DCE della Open Software Foundation e successivamente formalizzato come RFC 4122 nel 2005, gli UUID risolvono un problema ingannevolmente difficile: come creare identificatori garantiti unici senza un'autorità di coordinamento centrale? La risposta risiede nella matematica e nella probabilità. Un UUID v4 contiene 122 bit casuali, producendo circa 5,3 x 10^36 valori possibili. Per mettere questo in prospettiva, potrebbe generare un miliardo di UUID ogni secondo per oltre 100 anni prima di raggiungere una probabilità del 50% di una singola collisione. Questa garanzia matematica rende gli UUID la spina dorsale delle chiavi primarie dei database, delle code di messaggi distribuiti, dei token di sessione e delle architetture a microservizi in tutto il mondo. Questo generatore supporta molteplici formati di identificatori, ciascuno progettato per casi d'uso specifici. UUID v4 è il più ampiamente adottato, basandosi puramente sulla casualità. UUID v7, definito nel più recente RFC 9562, incorpora un timestamp Unix in millisecondi per l'ordinamento cronologico naturale — un grande vantaggio per l'indicizzazione dei database. UUID v1 combina un timestamp a 60 bit con un identificativo di nodo. Oltre agli UUID, lo strumento genera ULID (Identificatori Lessicograficamente Ordinabili Universalmente Unici) usando Crockford Base32, e NanoID — identificatori compatti e sicuri per URL, popolari nelle applicazioni frontend. Tutta la generazione utilizza la Web Crypto API del browser, garantendo casualità crittograficamente sicura. Nessun dato lascia il Suo dispositivo — ogni identificatore viene creato interamente nel Suo browser senza comunicazione con il server.

Fonti: RFC Editor

Come usare

  1. Seleziona un formato (UUID v4/v7/v1, ULID o NanoID) e quanti generarne.
  2. Facoltativamente scelga la formattazione: maiuscolo, con/senza parentesi o trattini.
  3. Clicca su 'Genera UUID' e copia i singoli risultati o tutti insieme.

Standard UUID e Identità Distribuita

L'Universally Unique Identifier fu standardizzato per la prima volta nel RFC 4122 (2005), sebbene le sue radici risalgano all'Apollo Network Computing System negli anni '80 e al Distributed Computing Environment (DCE) della Open Software Foundation. Il problema fondamentale che risolvono gli UUID e la generazione di identificatori globalmente univoci senza un'autorità di coordinamento centrale — essenziale per i sistemi distribuiti dove più macchine devono creare indipendentemente ID che non entreranno mai in collisione. RFC 4122 defini cinque versioni UUID per diversi casi d'uso. La versione 1 incorpora un timestamp a 60 bit (intervalli di 100 nanosecondi dal 15 ottobre 1582 — la riforma del calendario gregoriano) combinato con un identificativo di nodo a 48 bit originariamente derivato dall'indirizzo MAC. Sebbene garantisse l'univocita, v1 esponeva l'identità hardware è il momento di creazione. Le versioni 3 e 5 sono basate sui nomi: eseguono l'hash di un identificativo di namespace combinato con un nome usando MD5 (v3) o SHA-1 (v5), producendo UUID deterministici. La versione 4 sostitui il determinismo con 122 bit di casualita crittografica, diventando la versione più adottata. Lo standard più recente, RFC 9562 (2024), ha introdotto UUID v7 come scelta raccomandata per identificatori compatibili con i database. La versione 7 incorpora un timestamp Unix a 48 bit in millisecondi nei bit più significativi, seguiti da bit casuali di riempimento. Questo design crea identificatori che si ordinano cronologicamente — un vantaggio critico per gli indici B-tree dei database dove gli UUID v4 casuali causano frammentazione eccessiva. I benchmark mostrano che gli UUID v7 migliorano la produttivita di inserimento del 20-40% rispetto a v4. La probabilita di collisione di UUID v4 e governata dal paradosso del compleanno. Con 122 bit casuali, lo spazio contiene 5,3 x 10^36 valori possibili. La probabilita di generare un duplicato raggiunge il 50% solo dopo aver prodotto circa 2,71 x 10^18 UUID. I formati concorrenti includono gli Snowflake ID di Twitter (64 bit), gli ULID (128 bit con codifica Crockford Base32), i NanoID (stringhe compatte sicure per URL) e le sequenze auto-incrementali dei database. Ciascuno comporta compromessi tra garanzie di unicita, ordinabilita, dimensione di archiviazione e requisiti di coordinamento.

Come usare

  1. Seleziona un formato (UUID v4/v7/v1, ULID o NanoID) e quanti generarne.
  2. Facoltativamente scelga la formattazione: maiuscolo, con/senza parentesi o trattini.
  3. Clicca su 'Genera UUID' e copia i singoli risultati o tutti insieme.

Metodologia

La generazione di UUID v4 si basa sul metodo crypto.randomUUID() del browser dalla Web Crypto API, che produce 128 bit di cui 122 sono crittograficamente casuali e 6 sono riservati per i marcatori di versione (4 bit impostati a 0100) e variante (2 bit impostati a 10). Questo garantisce che ogni UUID sia autodescrittivo — può identificare la sua versione ispezionando il 13° carattere esadecimale. UUID v7 incorpora un timestamp Unix a 48 bit in millisecondi nei bit più significativi, seguiti da bit casuali di riempimento. Questo design produce identificatori che sono sia unici che naturalmente ordinati nel tempo, rendendoli ideali per le chiavi primarie dei database dove le prestazioni dell'indice B-tree contano. UUID v1 usa un timestamp a 60 bit con risoluzione di 100 nanosecondi dal 15 ottobre 1582 (la data della riforma del calendario gregoriano), una sequenza di clock a 14 bit per prevenire duplicati durante gli aggiustamenti dell'orologio, è un identificativo di nodo a 48 bit generato casualmente per la protezione della privacy. Gli ULID codificano un timestamp a 48 bit in millisecondi seguito da 80 bit casuali, rappresentati in Crockford Base32 per una rappresentazione compatta e insensibile alle maiuscole. I NanoID utilizzano un alfabeto è una lunghezza configurabili, per impostazione predefinita 21 caratteri da un set sicuro per URL, fornendo 126 bit di entropia.

Capire i tuoi risultati

Ogni UUID è un valore a 128 bit visualizzato come 32 caratteri esadecimali in 5 gruppi separati da trattini, seguendo il pattern 8-4-4-4-12. Il formato canonico è xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, dove la posizione M (13° carattere hex) indica la versione e la posizione N (17° carattere hex) indica la variante. Per UUID v4, M è sempre '4' e N è uno tra '8', '9', 'a' o 'b', confermando la conformità RFC 4122. Per UUID v7, M è '7' e i primi 12 caratteri hex codificano il timestamp in millisecondi, rendendo il tempo di creazione direttamente leggibile. UUID v1 pone M come '1' con il timestamp suddiviso nei primi tre gruppi in un ordine riorganizzato. Gli ULID sono visualizzati come 26 caratteri Crockford Base32 maiuscoli — i primi 10 codificano il timestamp e i restanti 16 codificano la casualità. I NanoID appaiono come stringhe compatte che utilizzano caratteri sicuri per URL (A-Z, a-z, 0-9, trattino, underscore), senza marcatori strutturali intrinseci. Nella scelta di un formato, considera che gli UUID con parentesi graffe sono comuni negli ecosistemi Microsoft, mentre gli UUID senza trattini risparmiano spazio di archiviazione nei database.

Fonti: RFC Editor

Esempi pratici

Chiavi primarie del database: Usa UUID v7 per tabelle PostgreSQL o MySQL dove l'ordine di inserimento conta. Il timestamp incorporato garantisce valori chiave sequenziali, evitando la dispersione I/O casuale che UUID v4 causa sugli indici cluster. Tracciamento eventi microservizi: Genera UUID v4 per gli ID di correlazione passati attraverso code di messaggi (Kafka, RabbitMQ). La pura casualità garantisce zero collisioni anche quando migliaia di servizi producono ID simultaneamente. Token di sessione frontend: Usa NanoID per identificatori di sessione compatti e sicuri per URL nelle applicazioni a pagina singola. Con 21 caratteri, sono più corti degli UUID mantenendo una resistenza alle collisioni equivalente. Denominazione file e deduplicazione: Genera ULID per gli identificatori dei file caricati. La loro ordinabilità lessicografica significa che un semplice elenco alfabetico mostra i file in ordine cronologico di caricamento.

Consigli e Buone Pratiche

Scelga la versione UUID in base al Suo caso d'uso invece di usare v4 per impostazione predefinita. Se i Suoi identificatori serviranno come chiavi primarie del database, UUID v7 o ULID forniscono prestazioni di inserimento significativamente migliori perché la loro natura ordinata nel tempo mantiene gli indici B-tree sequenziali, riducendo le suddivisioni di pagina e la frammentazione. Per i sistemi distribuiti dove più nodi generano ID indipendentemente, la pura casualità di UUID v4 elimina qualsiasi rischio di collisioni basate su timestamp. Quando lavora con URL o identificatori visibili all'utente, il formato compatto di 21 caratteri di NanoID è più pratico di un UUID di 36 caratteri. Archivia sempre gli UUID come il loro tipo binario nativo a 128 bit nei database quando disponibile (ad es. il tipo uuid di PostgreSQL o BINARY(16) di MySQL) invece che come stringhe VARCHAR(36). Questo dimezza lo spazio di archiviazione e migliora le prestazioni di confronto. Durante il debug, ricordi che la cifra della versione (posizione 13) Le dice istantaneamente quale variante UUID sta esaminando.

Tutti i calcoli vengono eseguiti localmente nel tuo browser. Nessun dato viene inviato a un server.

Incorpora questo strumento

Ottieni il codice

Questo strumento ti è stato utile?
Vuoi dirci di più?
0/500
Vuoi che ti ricontattiamo?
Grazie per il tuo feedback!

Domande frequenti

Qual è la differenza tra UUID v4, v7, v1, ULID e NanoID?
UUID v4 è completamente casuale (il più comune). UUID v7 è ordinato per tempo con timestamp in millisecondi — ideale per i database. UUID v1 usa timestamp + indirizzo MAC. ULID è un ID ordinabile di 26 caratteri in Crockford Base32. NanoID è un ID compatto di 21 caratteri sicuro per gli URL. Per i database, usa v7 o ULID. Per uso generale, v4. Per URL compatti, NanoID.
Gli UUID generati sono davvero unici?
Sì! UUID v4 ha 122 bit casuali, generando circa 5,3×10³⁶ combinazioni possibili. La probabilità di generare due UUID identici è astronomicamente bassa — dovresti generare 1 miliardo di UUID al secondo per circa 100 anni per avere il 50% di probabilità di una collisione.
Qual è la differenza tra UUID e GUID?
UUID (Universally Unique Identifier) e GUID (Globally Unique Identifier) sono essenzialmente la stessa cosa. GUID è il termine di Microsoft per UUID. Entrambi seguono lo stesso standard RFC 4122 e hanno lo stesso formato a 128 bit con 32 caratteri esadecimali e 4 trattini.
Quando dovrei usare UUID v7 invece di v4?
Usi UUID v7 quando ha bisogno di identificatori ordinati per tempo, in particolare come chiavi primarie del database. UUID v7 (definito in RFC 9562) incorpora un timestamp Unix nei primi 48 bit, rendendo gli ID naturalmente ordinabili per tempo di creazione. Questo migliora drasticamente le prestazioni di inserimento sugli indici B-tree perché le nuove righe vengono sempre aggiunte alla fine, evitando divisioni casuali delle pagine. UUID v4 è puramente casuale e causa frammentazione degli indici nei database. Usi v4 quando l'ordine non conta (token API, ID di sessione, ID di correlazione) e v7 quando ha bisogno di ID ordinabili per tempo (chiavi primarie, ID di eventi, log distribuiti).
Una collisione UUID può effettivamente verificarsi nella pratica?
Per UUID v4, la probabilità è astronomicamente bassa. Un UUID v4 ha 122 bit casuali, producendo 5,3 × 10³⁶ valori possibili. Per avere il 50% di probabilità di una singola collisione, dovresti generare circa 2,71 × 10¹⁸ UUID — cioè 2,71 quintilioni. A 1 miliardo di UUID al secondo, ci vorrebbero circa 86 anni. In pratica, il rischio di collisione è molto più probabile che derivi da un generatore di numeri casuali difettoso (scarsa fonte di entropia) piuttosto che dalla probabilità matematica. La Web Crypto API (crypto.getRandomValues), utilizzata da questo strumento, fornisce casualità crittograficamente sicura adatta alla generazione di UUID.
Cos'è ULID e quando dovrei usarlo invece di UUID?
ULID (Universally Unique Lexicographically Sortable Identifier) è un identificatore a 128 bit che combina un timestamp Unix a 48 bit in millisecondi con 80 bit di casualità, codificato come stringa Crockford Base32 di 26 caratteri. Gli ULID sono ordinabili per tempo (come UUID v7), non fanno distinzione tra maiuscole e minuscole e sono leggermente più corti del formato esadecimale a 36 caratteri di UUID. Usi ULID quando vuole ID leggibili, ordinabili e facili da copiare e incollare. Usi UUID quando ha bisogno della massima compatibilità con sistemi esistenti, database e librerie che si aspettano il formato UUID standard 8-4-4-4-12. UUID v7 offre vantaggi simili di ordinamento temporale rimanendo compatibile con l'ecosistema UUID.