Generatore UUID
Genera UUID v1, v4, v7, NIL o MAX in batch. Toggle per maiuscole, parentesi o senza trattini.
When to use which version
- v1 — time-based + MAC node. Good when ordering matters and you need debuggable insertion order. Leaks MAC/host info if real MAC is used; we generate a random multicast-bit node so no real hardware is exposed.
- v4 — random. Default choice. Collision-resistant (2¹²² entropy), good for distributed systems where ordering doesn't matter. Bad for DB primary keys at scale (random order kills B-tree locality).
- v7 — time-ordered (RFC 9562, 2024). 48-bit Unix-ms timestamp prefix → lexicographically sortable + index-friendly. Recommended for new DB primary keys. Use this if you can.
- NIL —
00000000-0000-0000-0000-000000000000. Sentinel/placeholder value. - MAX — all-ones UUID (RFC 9562). Useful as "infinity" sentinel paired with NIL.
Informazioni su questo strumento
UUID Generator emette identificatori universalmente unici a 128 bit conformi a RFC 9562 (l'aggiornamento 2024 dell'originale RFC 4122). Sono supportate cinque varianti: v1 (tempo + MAC, prevedibile nel tempo), v4 (casuale — la più comune), v7 (casuale ordinato nel tempo, il moderno default per le chiavi di database), NIL (placeholder tutto-zero) e MAX (tutto-FF — utile come limite "massimo" nelle query a intervallo). Si genera uno o fino a 1000 alla volta.
Tutta la casualità proviene da crypto.getRandomValues() — lo stesso CSPRNG del browser usato da TLS. Gli UUID non si ripetono in pratica: i 122 bit di casualità di v4 danno una probabilità di collisione così bassa che generare un miliardo al secondo per 85 anni ha circa il 50% di probabilità di una singola collisione (il "birthday bound" per 122 bit). v7 riduce la casualità a 74 bit in cambio dell'ordinamento temporale, che è comunque collision-safe a qualsiasi scala realistica.
Quando usare questo strumento
- Generare un ID di esempio per test. Più veloce che eseguire il generatore del proprio ORM.
- Scegliere la versione giusta. v7 si ordina per tempo quando usato come chiave primaria — molto meglio per gli indici B-tree rispetto a v4. Usare v4 solo quando si vuole attivamente nascondere l'ordine.
- Seeding di fixture. 100 UUID distinti con un clic per un set di dati di test.
- Ispezione del formato UUID. Validare che una stringa ricevuta sia effettivamente un UUID valido e scoprire quale versione.
Su v7 vs v4
UUID v7 è stato standardizzato nel 2024 specificamente per correggere la casualità anti-database-friendly di v4. v7 ha il timestamp (48 bit, risoluzione al millisecondo) nei bit alti, quindi gli UUID appena generati si ordinano lessicograficamente per tempo di creazione. Questo mantiene un indice B-tree "compatto" (i nuovi inserimenti si raggruppano a un'estremità) anziché disperdersi attraverso le pagine. Per nuove applicazioni, v7 è il nuovo default; v4 rimane utile solo quando si vuole specificamente l'imprevedibilità dell'ordine.Domande frequenti
Qual è la differenza tra UUID v4 e v7?
Gli UUID sono realmente unici?
00000000-...) è l'unica eccezione ed è riservato.
Perché alcuni UUID hanno delle parentesi attorno?
{xxxxxxxx-xxxx-...}. Le parentesi non fanno parte del valore, sono solo decorative. La maggior parte degli altri ecosistemi (Linux, JSON API, JavaScript) scrive gli UUID senza parentesi. Il nostro toggle permette di produrre entrambi i formati; cambiare al bisogno quando si interopera con stack Windows-heavy.
Posso usarli come chiavi primarie del database?
BINARY(16) per la compattezza.