Skip to content

Generatore e Decoder UUID — v1, v4, v5, v7 in Modalità Batch

Generatore UUID gratuito online — crea UUID v1, v4, v5, v7 all'istante. Decodifica e valida qualsiasi UUID. Genera in batch fino a 50. Senza registrazione, 100% nel browser.

Niente tracciamento Funziona nel browser Gratuito
Tutti gli UUID sono generati localmente nel tuo browser. Nulla viene trasmesso o memorizzato.
Revisionato per la conformità all'RFC 9562 e la correttezza strutturale — Team di Ingegneria di Go Tools · Mar 22, 2026

Cos'è un UUID?

Un UUID (Universally Unique Identifier) è un identificatore univoco globale a 128 bit standardizzato dall'RFC 9562 (IETF, maggio 2024), progettato per generare ID privi di collisioni in sistemi distribuiti senza coordinamento centrale. Gli UUID sono il formato di identificatore più ampiamente adottato nel software moderno — utilizzati in chiavi primarie di database, tracciamento delle richieste API, gestione delle sessioni e architetture a microservizi.

Gli UUID sono scritti come 32 cifre esadecimali nel formato canonico 8-4-4-4-12, ad esempio `550e8400-e29b-41d4-a716-446655440000`. La specifica è mantenuta dall'IETF; l'RFC 9562 sostituisce il precedente RFC 4122 (2005) e introduce formalmente le versioni UUID 6, 7 e 8.

Esistono cinque versioni UUID ampiamente utilizzate. La versione 1 (v1) codifica il timestamp corrente e l'indirizzo MAC della macchina generante, rendendo ogni UUID univoco sia nel tempo che nello spazio. La versione 3 (v3) e la versione 5 (v5) sono deterministiche — eseguono l'hashing di uno spazio dei nomi e un nome usando rispettivamente MD5 o SHA-1, producendo sempre lo stesso UUID per gli stessi input. La versione 4 (v4) è la più comune: riempie 122 bit con dati casuali crittograficamente sicuri, dando oltre 5,3 × 10³⁶ valori possibili (RFC 9562, Sezione 5.4). La versione 7 (v7) è il nuovo standard: come afferma la Sezione 5.7 dell'RFC 9562, "UUID versione 7 presenta un campo di valore ordinato nel tempo derivato dalla sorgente di timestamp Unix Epoch ampiamente implementata e ben nota" — combinando un timestamp in millisecondi a 48 bit con dati casuali per produrre UUID che sono sia univoci che naturalmente ordinabili per tempo di creazione.

Gli UUID sono essenziali nei sistemi distribuiti, database, API e ovunque siano necessari identificatori univoci senza coordinamento centralizzato. Eliminano il rischio di collisioni di ID tra sistemi indipendenti, rendendoli ideali per microservizi, event sourcing e architetture multi-tenant.

Questo strumento genera tutte le versioni UUID interamente nel tuo browser usando la Web Crypto API — nessun UUID viene trasmesso ad alcun server. A differenza dei generatori basati su server, non ci sono upload, logging né conservazione dei dati. Sicuro per chiavi di database in produzione, identificatori API e applicazioni sensibili alla sicurezza. Puoi anche decodificare e validare UUID esistenti per ispezionarne la versione, la variante e i dati incorporati.

Gli UUID sono strettamente connessi ad altre primitive per sviluppatori. UUID v1 e v7 incorporano direttamente i timestamp Unix, UUID v3 e v5 usano gli hash MD5 e SHA-1 come fondamento, e le stringhe UUID sono spesso trasportate all'interno di payload JSON ispezionati al meglio con un formattatore JSON. Per un'introduzione approfondita al formato, alle versioni e ai casi d'uso reali degli UUID, leggi la nostra guida completa agli UUID. Se devi scegliere tra UUID v4, v7, ULID e Snowflake ID per una chiave primaria di database, consulta il nostro confronto per la selezione degli ID.

// Generate a UUID v4 using the Web Crypto API
const uuid = crypto.randomUUID();
console.log(uuid);
// → '550e8400-e29b-41d4-a716-446655440000'

// Manual v4 generation with crypto.getRandomValues()
function generateUUIDv4() {
  const bytes = new Uint8Array(16);
  crypto.getRandomValues(bytes);
  bytes[6] = (bytes[6] & 0x0f) | 0x40; // version 4
  bytes[8] = (bytes[8] & 0x3f) | 0x80; // variant 10
  const hex = Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');
  return `${hex.slice(0,8)}-${hex.slice(8,12)}-${hex.slice(12,16)}-${hex.slice(16,20)}-${hex.slice(20)}`;
}

Caratteristiche principali

Supporto UUID v7 (RFC 9562)

Genera l'ultimo formato UUID v7 con timestamp Unix incorporati per identificatori ordinati per tempo e ottimizzati per i database. Uno dei pochi strumenti online che supporta lo standard RFC 9562.

Decoder e validatore UUID

Analizza qualsiasi UUID per rivelarne versione, variante, timestamp (v1/v7), sequenza di clock e informazioni sul nodo. Convalida immediatamente se una stringa è un UUID formattato correttamente.

Supporto multi-versione

Genera UUID in cinque versioni — v1 (basata sul tempo), v3 (MD5), v4 (casuale), v5 (SHA-1) e v7 (casuale ordinata per tempo) — tutte conformi all'RFC 9562.

Generazione in batch

Genera fino a 50 UUID univoci in una sola volta. Ogni UUID viene generato indipendentemente con piena casualità crittografica o codifica corretta specifica della versione.

Formati di output multipli

Output UUID in formato minuscolo standard, MAIUSCOLO, senza trattini o con parentesi graffe {GUID} — corrispondenti al formato esatto richiesto dal tuo sistema o framework.

Crittograficamente sicuro

Usa la Web Crypto API (crypto.getRandomValues()) per la generazione di numeri veramente casuali — lo stesso standard utilizzato dai browser moderni e dagli strumenti di sicurezza.

100% nel browser

Tutti gli UUID vengono generati localmente nel tuo browser. Nulla viene inviato ad alcun server — i tuoi identificatori generati rimangono completamente privati.

Confronto tra versioni UUID

Scegli la versione UUID giusta per il tuo caso d'uso.

Versione Base Ordinabile Privacy Ideale per
v1 Timestamp + indirizzo MAC Per tempo di creazione Espone MAC e tempo Sistemi legacy con ordinamento temporale
v4 122 bit casuali crittografici No Completamente anonimo Uso generico — la versione più diffusa
v5 Hash SHA-1 di namespace + nome No Deterministico, riproducibile ID coerenti da input noti (URL, DNS)
v7 Timestamp Unix (ms) + casuale Per tempo di creazione Espone solo l'ora di creazione Database moderni — ordinabile, ottimo per indici (RFC 9562)

UUID vs altri formati di ID

ULID

26 caratteri, Crockford Base32

Lessicograficamente ordinabile come UUID v7, ma usa la codifica Crockford Base32 (26 caratteri contro 36). UUID v7 è ora l'alternativa standardizzata IETF con un supporto di tooling più ampio.

nanoid

21 caratteri, alfabeto URL-safe

Più corto e URL-safe, ideale quando la compattezza è importante. Non è uno standard formale — manca dei tipi nativi di database e delle librerie multipiattaforma che ha UUID.

CUID2

Lunghezza variabile, alfanumerico

Progettato per il ridimensionamento orizzontale con resistenza alle collisioni. Meno adottato di UUID; nessun supporto nativo nei database. Considera UUID v7 per ID standardizzati ordinati per tempo.

Esempi di versioni UUID

UUID v4 (Casuale)

550e8400-e29b-41d4-a716-446655440000

La versione più utilizzata. 122 bit di casualità crittografica forniscono oltre 5,3 x 10^36 valori possibili — adatta praticamente a qualsiasi caso d'uso in cui è richiesta unicità senza coordinamento.

UUID v7 (Ordinato per tempo)

01906b5e-4a3e-7234-8f56-b8c12d4e5678

Combina un timestamp Unix a 48 bit in millisecondi con dati casuali. Gli UUID si ordinano cronologicamente, rendendoli ideali per chiavi primarie di database in cui la località dell'indice è importante. Raccomandato per nuovi progetti rispetto a v1 e v4.

UUID v1 (Basato sul tempo)

6ba7b810-9dad-11d1-80b4-00c04fd430c8

Codifica un timestamp a 60 bit e l'indirizzo MAC a 48 bit della macchina generante. Garantisce l'unicità nel tempo e nello spazio, ma può divulgare informazioni sull'identità hardware. Sostituito da v6/v7 nell'RFC 9562.

UUID v5 (Basato su nome SHA-1)

886313e1-3b8a-5372-9b90-0c9aee199e5d

UUID deterministico generato hashando il namespace DNS con il nome 'python.org' usando SHA-1. Lo stesso namespace e nome producono sempre lo stesso UUID, rendendo v5 ideale per identificatori riproducibili.

Come usare

  1. 1

    Seleziona la versione UUID

    Scegli tra v1 (basata sul tempo), v3 (basata su nome MD5), v4 (casuale), v5 (basata su nome SHA-1) o v7 (casuale ordinata per tempo). Ogni versione serve a uno scopo diverso — v4 è la più comune per uso generale.

  2. 2

    Configura le opzioni

    Per v3 e v5, seleziona uno spazio dei nomi (DNS, URL, OID, X.500 o personalizzato) e inserisci un nome da sottoporre all'hash. Imposta la quantità da 1 a 50 e scegli un formato di output: minuscolo standard, MAIUSCOLO, senza trattini o con parentesi graffe {GUID}.

  3. 3

    Genera UUID

    Clicca sul pulsante Genera. Ogni UUID viene creato usando la Web Crypto API (crypto.getRandomValues()) per la sicurezza crittografica. I campi specifici della versione come i timestamp (v1/v7) e gli hash (v3/v5) sono codificati correttamente.

  4. 4

    Copia e usa

    Clicca sul pulsante Copia accanto a qualsiasi UUID per copiarlo negli appunti, o usa Copia tutto per prendere ogni UUID generato in una volta sola. Passa alla scheda Decodifica per analizzare la versione, la variante, il timestamp e altre informazioni incorporate di un UUID esistente.

Casi d'uso comuni

Chiavi primarie di database
Usa UUID v4 o v7 come chiavi primarie univoche senza coordinamento tra i nodi del database. UUID v7 è particolarmente adatto perché la sua proprietà di ordinamento per tempo migliora le prestazioni degli indici B-tree.
Sistemi distribuiti
Genera identificatori univoci in modo indipendente tra microservizi, code di messaggi e sistemi di event sourcing. Gli UUID eliminano la necessità di un servizio centralizzato di generazione di ID.
Sviluppo API
Crea ID di richiesta univoci, ID di correlazione e chiavi di idempotenza per API RESTful e GraphQL. Gli UUID rendono facile tracciare le richieste oltre i confini dei servizi distribuiti.
Gestione di sessioni e token
Genera identificatori di sessione univoci e token temporanei per i flussi di autenticazione. Gli UUID forniscono unicità sufficiente per prevenire collisioni di sessione tra grandi basi di utenti.
Test e sviluppo
Genera rapidamente dati di test, identificatori finti e ID di fixture univoci per i test automatizzati. La generazione in batch rende facile popolare database di sviluppo e suite di test.

Dettagli tecnici

Struttura dell'UUID
Un UUID è composto da 128 bit (16 byte) rappresentati come 32 caratteri esadecimali nel formato 8-4-4-4-12. I bit 48-51 (la 13ª cifra esadecimale) codificano il numero di versione. I bit 64-65 codificano il campo variante, che identifica il layout dell'UUID. I bit rimanenti trasportano il payload specifico della versione: timestamp, dati casuali o output di hash.
Bit di versione
I bit 48-51 (il nibble alto del 7° byte) codificano la versione UUID: 0001 = v1 (basata sul tempo), 0011 = v3 (basata su nome MD5), 0100 = v4 (casuale), 0101 = v5 (basata su nome SHA-1), 0110 = v6 (tempo riordinato), 0111 = v7 (tempo Unix epoch). Questi quattro bit vengono sempre impostati esplicitamente durante la generazione.
Campo variante
I bit 64-65 (i due bit più significativi del 9° byte) definiscono la variante. Il pattern 10x indica gli UUID RFC 4122/9562 (la stragrande maggioranza). Il pattern 110 indica i GUID Microsoft con ordine di byte mixed-endian. Il pattern 0xx indica gli UUID retrocompatibili NCS (legacy). Il pattern 111 è riservato per uso futuro.
Standard RFC 9562
L'RFC 9562, pubblicato a maggio 2024, sostituisce l'RFC 4122 come specifica UUID definitiva. Introduce formalmente le versioni UUID 6, 7 e 8. La versione 6 riordina i campi v1 per l'ordinabilità. La versione 7 usa un timestamp Unix a 48 bit in millisecondi più dati casuali, rendendola la versione raccomandata per nuovi UUID basati sul tempo. La versione 8 fornisce un formato per UUID personalizzati e specifici per l'implementazione. L'RFC 9562 deprecia anche formalmente v1 a favore di v6/v7.

Best practice

Scegli la versione giusta
Usa v4 per identificatori univoci di uso generico dove non sono necessari ordinamento o determinismo. Usa v7 per le chiavi primarie di database — la sua proprietà ordinata per tempo offre prestazioni dell'indice significativamente migliori. Usa v5 quando hai bisogno di ID deterministici derivati da nomi (preferisci v5 a v3 per un hashing più forte).
Usa UUID v7 per le chiavi primarie di database
La struttura ordinata per tempo di UUID v7 mantiene gli inserimenti B-tree sequenziali, riducendo la frammentazione dell'indice di circa il 90% rispetto agli UUID v4 casuali. Questo si traduce in scritture più veloci, indici più piccoli e migliore utilizzo della cache. La maggior parte dei database moderni (PostgreSQL 17+, MySQL 8.0+) ha un supporto UUID nativo ottimizzato per questo pattern.
Non usare mai gli UUID come token di sicurezza
Gli UUID sono progettati per l'unicità, non per la segretezza. UUID v1 fa trapelare il timestamp di generazione e l'indirizzo MAC. UUID v4 ha solo 122 bit di entropia con una struttura prevedibile. Per token di sicurezza, chiavi API o segreti di sessione, usa un CSPRNG dedicato per generare 128 o 256 bit di puri dati casuali senza l'overhead della struttura UUID.
Valida prima di analizzare
Valida sempre il formato UUID con un'espressione regolare prima di analizzarlo o archiviarlo. Rifiuta gli input malformati ai confini del sistema — endpoint API, invii di moduli e input del database. Questo previene attacchi di iniezione, corruzione dei dati ed errori difficili da debuggare derivanti da identificatori non validi che si propagano nel tuo sistema.

Domande frequenti

Cos'è un UUID?
Un UUID (Universally Unique Identifier) è un identificatore a 128 bit standardizzato dall'RFC 9562. È scritto come 32 cifre esadecimali visualizzate in cinque gruppi separati da trattini, seguendo il formato 8-4-4-4-12 — ad esempio, 550e8400-e29b-41d4-a716-446655440000. Gli UUID sono progettati per essere globalmente univoci senza richiedere un'autorità di registrazione centrale. Il termine GUID (Globally Unique Identifier) è il nome di Microsoft per lo stesso concetto e usa il formato identico. Gli UUID sono ampiamente utilizzati in database, sistemi distribuiti, API e sviluppo software ovunque siano necessari identificatori univoci. Con oltre 5,3 x 10^36 possibili UUID v4, la probabilità di generare un duplicato è astronomicamente piccola, rendendoli sicuri per la generazione indipendente tra sistemi non coordinati.
Quali sono le differenze tra le versioni UUID?
UUID v1 codifica un timestamp a 60 bit e l'indirizzo MAC a 48 bit della macchina, garantendo l'unicità nel tempo e nello spazio ma potenzialmente divulgando l'identità hardware. UUID v3 esegue l'hash di un namespace e un nome con MD5 per produrre un UUID deterministico — gli stessi input producono sempre lo stesso output. UUID v4 riempie 122 dei suoi 128 bit con dati casuali crittograficamente sicuri, rendendolo la versione più utilizzata per identificatori univoci di uso generico. UUID v5 è identico a v3 ma usa SHA-1 invece di MD5, offrendo una resistenza alle collisioni hash più forte. UUID v7, introdotto nell'RFC 9562 (maggio 2024), incorpora un timestamp Unix a 48 bit in millisecondi seguito da bit casuali, producendo UUID che sono sia univoci che naturalmente ordinabili per tempo di creazione. La scelta della versione dipende dalle tue esigenze: v4 per la semplicità, v5 per il determinismo e v7 per chiavi di database ordinabili per tempo.
Quando dovrei usare UUID v4 contro v7?
UUID v4 è la versione più popolare ed è un'eccellente scelta predefinita. Genera 122 bit di pura casualità, non richiede configurazione e funziona ovunque. Usa v4 quando ti serve semplicemente un identificatore univoco e non ti interessa l'ordinamento. UUID v7 è la scelta migliore quando gli UUID saranno utilizzati come chiavi primarie di database o devono essere ordinati per tempo di creazione. Poiché v7 incorpora un timestamp con precisione al millisecondo nei bit più significativi, gli UUID v7 si ordinano naturalmente in ordine cronologico. Questa proprietà migliora drasticamente le prestazioni degli indici B-tree — gli inserimenti vanno sempre alla fine dell'indice anziché in posizioni casuali, riducendo le suddivisioni di pagina e la frammentazione fino al 90%. Per nuovi progetti nel 2026, la raccomandazione generale è usare v7 per le chiavi di database e v4 per tutto il resto. Entrambe le versioni sono ugualmente univoche e crittograficamente casuali nelle loro porzioni casuali.
Qual è la probabilità di collisione UUID?
UUID v4 ha 122 bit casuali, dando 2^122 (circa 5,3 x 10^36) valori possibili. Per avere una probabilità del 50% di almeno una collisione, dovresti generare circa 2,71 x 10^18 UUID — cioè 2,71 quintilioni. Per metterlo in prospettiva, se generassi un miliardo di UUID al secondo, ci vorrebbero circa 86 anni per raggiungere una probabilità di collisione del 50%. A tassi di generazione più realistici, la probabilità è infinitesimamente piccola. Ad esempio, generando 10 milioni di UUID si produce una probabilità di collisione di circa 1 su 10^22. In pratica, guasti hardware, bug software ed errori umani sono tutti miliardi di volte più probabili di causare ID duplicati rispetto alle collisioni UUID v4. La matematica si basa sulla formula del problema del compleanno: p(n) approssimativamente uguale a n^2 / (2 * 2^122).
Qual è la differenza tra UUID e GUID?
UUID (Universally Unique Identifier) e GUID (Globally Unique Identifier) sono essenzialmente la stessa cosa. GUID è il termine coniato da Microsoft e utilizzato prevalentemente negli ambienti Windows, .NET, COM e SQL Server. UUID è il termine standard definito dall'RFC 9562 (e dal suo predecessore RFC 4122) ed è utilizzato nella maggior parte degli altri contesti, inclusi Linux, Java, Python, PostgreSQL e sviluppo web. Entrambi usano il formato identico a 128 bit visualizzato come 32 cifre esadecimali nel pattern 8-4-4-4-12. L'unica piccola differenza è che gli strumenti Microsoft a volte visualizzano i GUID in maiuscolo con parentesi graffe, come {550E8400-E29B-41D4-A716-446655440000}, mentre gli UUID sono convenzionalmente mostrati in minuscolo senza parentesi. Questo strumento supporta entrambi i formati tramite il selettore di formato di output — scegli il formato Parentesi {GUID} per l'output in stile Microsoft.
UUID v4 è crittograficamente sicuro?
Quando generato usando crypto.getRandomValues() o un CSPRNG equivalente (Cryptographically Secure Pseudo-Random Number Generator), UUID v4 contiene 122 bit di dati casuali crittograficamente sicuri. Questo strumento usa la Web Crypto API, che attinge entropia dalla sorgente casuale sicura del sistema operativo. Tuttavia, gli UUID non dovrebbero essere usati come token di sicurezza, password o chiavi di crittografia. Sebbene 122 bit di casualità rendano la previsione irrealizzabile, gli UUID hanno una struttura prevedibile — il nibble della versione (4) e i bit della variante sono fissi e pubblicamente noti. Per i token di sicurezza, usa API appositamente progettate come crypto.getRandomValues() con un'entropia completa di 128 o 256 bit, oppure usa formati di token consolidati come JWT. Usa gli UUID per l'identificazione, non per la sicurezza.
Come validare il formato di un UUID?
Un UUID valido corrisponde al pattern di espressione regolare: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$ (case-insensitive). Questo pattern impone il formato esadecimale 8-4-4-4-12, controlla che la cifra di versione (posizione 15) sia compresa tra 1 e 7, e verifica che il nibble della variante (posizione 20) inizi con 8, 9, a o b (indicando la variante RFC 4122/9562). In JavaScript, puoi validare con: /^[0-9a-f]{8}-[0-9a-f]{4}-[1-7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(uuid). La maggior parte dei linguaggi di programmazione ha anche un parsing UUID integrato — ad esempio, il costruttore uuid.UUID() di Python, UUID.fromString() di Java e uuid.Parse() di Go. Valida sempre gli UUID ai confini del sistema prima di archiviarli o elaborarli per prevenire attacchi di iniezione e corruzione dei dati.
Gli UUID sono buone chiavi primarie di database? (Prestazioni, sicurezza e versione migliore)
Sì, gli UUID sono sicuri e sempre più popolari come chiavi primarie di database, con UUID v7 come versione raccomandata. I vantaggi chiave: (1) Gli UUID possono essere generati ovunque — client, server o edge function — senza un viaggio di andata e ritorno al database, abilitando architetture offline-first e distribuite. (2) Gli UUID prevengono attacchi di enumerazione poiché non sono interi sequenziali. (3) Gli UUID semplificano l'unione dei dati tra sistemi poiché gli ID non collidono mai. UUID v7 è la versione migliore per le chiavi primarie perché la sua struttura ordinata per tempo mantiene gli indici B-tree sequenziali, riducendo drasticamente le suddivisioni di pagina, l'amplificazione di scrittura e la frammentazione dell'indice fino al 90% rispetto agli UUID v4 casuali. I compromessi: gli UUID usano 16 byte contro 4-8 byte per gli interi, aumentando lo storage e la memoria per gli indici. In MySQL/InnoDB, dove la chiave primaria è l'indice cluster, gli UUID v4 casuali possono causare un significativo degrado delle prestazioni — v7 risolve questo garantendo che gli inserimenti vengano sempre aggiunti alla fine dell'indice, ottenendo prestazioni paragonabili agli interi auto-incrementali. PostgreSQL archivia gli UUID nativamente in 16 byte con il tipo uuid. Per la maggior parte delle applicazioni moderne, i benefici della generazione di ID globalmente univoci e privi di coordinamento superano di gran lunga il costo aggiuntivo di archiviazione.
Cos'è un UUID di namespace (v3/v5)?
Un UUID di namespace è un UUID predefinito o personalizzato che funge da ambito per generare UUID v3 e v5 deterministici. L'RFC 4122 definisce quattro UUID di namespace standard: DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8), URL (6ba7b811-9dad-11d1-80b4-00c04fd430c8), OID (6ba7b812-9dad-11d1-80b4-00c04fd430c8) e X.500 DN (6ba7b814-9dad-11d1-80b4-00c04fd430c8). Quando combini un UUID di namespace con una stringa di nome, l'algoritmo v3 o v5 li hasha insieme per produrre un UUID deterministico — lo stesso namespace più nome producono sempre lo stesso UUID. Questo è utile quando ti servono identificatori riproducibili derivati da nomi significativi. Ad esempio, hashare il namespace DNS con 'example.com' produce sempre lo stesso UUID v5. Puoi anche usare qualsiasi UUID valido come namespace personalizzato per lo schema di ID deterministico della tua applicazione.
Cos'è il valore nil di un UUID?
Il NIL UUID (chiamato anche zero UUID) è 00000000-0000-0000-0000-000000000000 — tutti i 128 bit impostati a zero. È definito nell'RFC 9562 Sezione 5.9 come un UUID speciale che può rappresentare l'assenza di un valore, simile a null o None nei linguaggi di programmazione. Il NIL UUID è utile come valore sentinella, predefinito nei sistemi di configurazione, o segnaposto nei record di database in cui un campo UUID non deve essere vuoto ma nessun valore reale esiste ancora. L'RFC 9562 definisce anche il max UUID: ffffffff-ffff-ffff-ffff-ffffffffffff (tutti i bit impostati a uno), che può fungere da marcatore di confine. Avvertenze importanti: non usare mai il NIL UUID come identificatore effettivo — non è univoco. Alcune librerie e database UUID possono rifiutare o gestire specialmente i NIL UUID, quindi assicurati che il tuo sistema li tratti in modo coerente. Documenta sempre se i NIL UUID sono accettati nei contratti API e negli schemi del tuo database.
Cos'è UUID v7 e perché dovrei usarlo?
UUID v7 è la versione UUID più recente definita nell'RFC 9562 (maggio 2024). Incorpora un timestamp Unix a 48 bit in millisecondi nei bit più significativi, seguito da dati crittograficamente casuali. Questo design produce UUID che sono globalmente univoci, ordinabili cronologicamente e altamente efficienti come chiavi primarie di database. A differenza di UUID v1, che contiene anch'esso un timestamp, v7 usa un formato Unix epoch più semplice e non espone il tuo indirizzo MAC. La struttura ordinata per tempo riduce la frammentazione dell'indice B-tree fino al 90% rispetto a UUID v4 casuale, risultando in inserimenti più veloci, indici più piccoli e migliori tassi di hit della cache. Per nuovi progetti che iniziano nel 2026, UUID v7 è la scelta raccomandata per qualsiasi scenario che richieda ordinamento basato sul tempo — specialmente chiavi primarie di database, log di eventi e code di messaggi distribuite.
Come decodificare un UUID?
Decodificare un UUID significa estrarre le informazioni strutturali codificate all'interno dei suoi 128 bit. Ogni UUID contiene un campo versione (bit 48-51) che identifica come è stato generato, e un campo variante (bit 64-65) che identifica lo standard UUID a cui è conforme. Oltre questi campi comuni, versioni diverse incorporano dati diversi: UUID v1 e v6 contengono un timestamp a 60 bit e un nodo a 48 bit (indirizzo MAC); UUID v7 contiene un timestamp Unix a 48 bit in millisecondi; UUID v3 e v5 contengono un hash troncato di un namespace e un nome. Per decodificare un UUID, incollalo nella scheda Decodifica di questo strumento. Visualizzerà istantaneamente la versione, la variante, il timestamp (per le versioni basate sul tempo) e lo stato di validità. A livello programmatico, puoi decodificare analizzando le cifre esadecimali e applicando operazioni bitwise per estrarre ogni campo secondo la specifica RFC 9562.
UUID vs ULID vs nanoid — quale dovrei usare?
UUID, ULID e nanoid servono allo stesso scopo fondamentale — generare identificatori univoci — ma differiscono per formato, ordinabilità e standardizzazione. UUID è lo standard più ampiamente adottato (RFC 9562), supportato nativamente da praticamente tutti i database, linguaggi e framework. UUID v7 fornisce ordinamento basato sul tempo nel formato standard a 128 bit e 36 caratteri. ULID (Universally Unique Lexicographically Sortable Identifier) precede UUID v7 e usa la codifica Crockford Base32 per produrre una stringa ordinabile di 26 caratteri. Ora che UUID v7 esiste come standard IETF, il principale vantaggio di ULID — l'ordinabilità — è disponibile nel formato UUID universale. NanoID genera identificatori più corti (21 caratteri predefiniti) usando un alfabeto URL-safe, rendendolo ideale quando la lunghezza della stringa è importante e non hai bisogno di interoperabilità tra sistemi. Per la maggior parte delle applicazioni, UUID v4 (uso generico) o UUID v7 (chiavi di database) è la scelta raccomandata grazie al supporto universale degli strumenti, ai tipi nativi del database e alla standardizzazione formale.
Sto costruendo un microservizio e devo scegliere tra UUID v4 e v7 per le mie chiavi primarie PostgreSQL — quale dovrei usare e perché?
Usa UUID v7 per le chiavi primarie PostgreSQL. UUID v7 incorpora un timestamp Unix con precisione al millisecondo nei bit più significativi, quindi gli ID generati sono naturalmente ordinati cronologicamente. Questo mantiene i tuoi indici B-tree sequenziali — gli inserimenti vengono sempre aggiunti alla fine anziché finire in posizioni casuali, riducendo le suddivisioni di pagina e la frammentazione dell'indice fino al 90% rispetto a UUID v4 casuale. PostgreSQL 17+ ha un supporto nativo del tipo uuid ottimizzato per questo pattern. UUID v4 va comunque bene per identificatori non indicizzati come ID di correlazione o token di sessione dove l'ordine non conta.
Il mio team sta dibattendo se usare UUID o interi auto-incrementali come ID di database — quali sono i compromessi reali?
Gli interi auto-incrementali sono più piccoli (4-8 byte contro 16 byte), più veloci da confrontare e producono indici naturalmente sequenziali. Tuttavia, richiedono una sequenza centralizzata (il database), rendendoli problematici nei sistemi distribuiti, nelle app offline-first e nelle migrazioni di dati. Gli UUID possono essere generati ovunque — client, edge function, database multipli — senza coordinamento. Prevengono anche gli attacchi di enumerazione (gli utenti non possono indovinare /users/124 per trovare altri record). L'overhead di archiviazione è reale ma di solito accettabile: un indice UUID è circa 2 volte la dimensione di un indice intero. Per la maggior parte delle applicazioni moderne, UUID v7 offre il meglio di entrambi i mondi — globalmente univoco, privo di coordinamento e ordinabile sequenzialmente come gli auto-incrementali.

Strumenti correlati

Vedi tutti gli strumenti →