🌐 IT

🆔 Generatore UUID

Genera identificatori univoci universali (UUID). Crea UUID standard per chiavi di database, token API, ID di sessione e altro ancora.

Info versione

v1 (Basato su timestamp)
Basato su indirizzo MAC e timestamp. Ordinato nel tempo.
v4 (Casuale)
Completamente casuale. Il più usato.
v7 (Ordinabile per timestamp)
Ordinabile in base al timestamp. Standard più recente.
GUIDA

Scopri di piu

01

1. Che cos'è un UUID?

UUID (Universally Unique Identifier) è un identificatore a 128 bit che garantisce l'unicità senza coordinamento centrale. Rappresentato in formato esadecimale 8-4-4-4-12 (ad esempio, 550e8400-e29b-41d4-a716-446655440000), la probabilità di duplicazione è estremamente bassa quando viene generato ovunque nel mondo. Usato in chiavi primarie di database, ID di sessione, nomi file, token API e altro. Chiamato anche GUID (Globally Unique Identifier), definito dallo standard RFC 4122.

02

2. Confronto tra le versioni UUID

Esistono 5 versioni di UUID, ognuna con metodi di generazione diversi. v1 combina indirizzo MAC e timestamp per garantire l'ordinamento temporale, ma presenta rischi di sicurezza dovuti all'esposizione dell'indirizzo MAC. v4 è completamente casuale, la più usata e con alta imprevedibilità. v7 è l'ultima versione standardizzata nel 2024, ordinabile in base al timestamp e vantaggiosa per l'indicizzazione dei database. v2 è per la sicurezza DCE, v3/v5 sono basate su namespace per scopi speciali.

03

3. Casi d'uso degli UUID

Gli UUID sono utili in varie situazioni. Nei sistemi distribuiti, è possibile generare ID univoci senza un server centrale, offrendo un'ottima scalabilità. Nei database, usare UUID come chiavi primarie invece di ID auto-incrementali evita conflitti di merge. Nelle architetture a microservizi, vengono usati per tracciare la comunicazione tra servizi. Sono inoltre ampiamente usati per prevenire collisioni nei nomi dei file durante gli upload, per la generazione di token temporanei, il tracking degli eventi e l'analisi della correlazione dei log.

04

4. Scegliere tra v1, v4 e v7

La scelta della versione UUID dipende dai requisiti. Scegli v1 se l'ordinamento temporale è importante e l'esposizione dell'indirizzo MAC è accettabile. Tuttavia, gli indirizzi MAC consentono di tracciare il luogo di generazione, con conseguenti problemi di privacy. v4 è la scelta migliore se la sicurezza è importante e l'ordinamento non è necessario. È completamente casuale, imprevedibile e non espone informazioni personali. v7 è consigliato se vuoi sia l'ordinamento temporale sia la sicurezza. L'ordinamento basato su timestamp offre buone prestazioni del database e meno frammentazione dell'indice.

05

5. Garanzia di unicità degli UUID

La probabilità di collisione degli UUID è astronomicamente bassa. Per v4, 122 bit sono casuali, fornendo 2^122 = 5.3 x 10^36 combinazioni possibili. Anche generandone 1 miliardo al secondo, servirebbero 85 anni per raggiungere una probabilità di collisione del 50%. v1 garantisce l'unicità basata sul tempo con timestamp (60 bit) e sequenza di clock (14 bit), e l'unicità basata sullo spazio con indirizzo MAC (48 bit). v7 combina timestamp Unix (48 bit) e casualità (74 bit) per soddisfare sia l'ordinamento temporale sia l'unicità.

06

6. Uso degli UUID nei database

Usare UUID come chiavi primarie del database offre diversi vantaggi. Negli ambienti distribuiti, ogni nodo può creare ID in modo indipendente senza un generatore centrale, offrendo un'eccellente scalabilità. Non ci sono conflitti di ID durante la fusione dei dati e, se esposti negli URL, è impossibile indovinare valori sequenziali, con vantaggi in termini di sicurezza. Tuttavia, ci sono anche svantaggi. A 16 byte, sono più grandi degli interi (4-8 byte) e la casualità di v4 può peggiorare le prestazioni dell'indice. In questi casi, usare v7 con ordinamento basato sul tempo migliora le prestazioni dell'indice B-tree.

Domande frequenti

Dovrei scegliere UUID v1, v4 o v7?
Scegli v4 se la sicurezza è importante e non serve l'ordinamento, oppure v7 se vuoi un ordinamento basato sul tempo e prestazioni migliori dell'indice del database. v1 espone l'indirizzo MAC, sollevando problemi di privacy, quindi non è consigliato a meno che non ci sia un'esigenza specifica.
Esiste la possibilità che gli UUID collidano?
Con v4, ci sono 2^122 combinazioni possibili: anche generandone 1 miliardo al secondo, servirebbero 85 anni per raggiungere una probabilità di collisione del 50%. In pratica, le collisioni non sono una preoccupazione reale.
Posso generare più UUID alla volta?
Sì, puoi specificare il numero e generarne fino a 100 in una sola volta, poi usare "Copia tutto" per prenderli insieme.
Posso usare gli UUID come chiavi primarie del database?
Sì. Questo consente ai sistemi distribuiti di creare ID univoci senza coordinamento centrale, anche se la casualità di v4 può causare frammentazione dell'indice: usa v7 se ti serve un ordinamento basato sul tempo.
UUID e GUID sono la stessa cosa?
Sì, GUID (Globally Unique Identifier) è il nome usato da Microsoft per sostanzialmente lo stesso concetto, e entrambi seguono lo standard RFC 4122.