Salta al contenuto principale

Generatore UUID Versione 4

UUIDv4 • Crittograficamente Casuale
00000000-0000-0000-0000-000000000000
Racchiudi:

Generazione UUID in Massa

Max 5.000
Formattazione e Struttura

Pronto

No batch active
Standard di SettoreRFC 9562 Sezione 5.4 / RFC 4122

Specifiche Tecniche UUID Versione 4 (RFC 4122 & RFC 9562)

UUIDv4 è la versione di UUID più diffusa al mondo. Su un totale di 128 bit, esattamente 122 bit derivano da generatori di numeri pseudocasuali crittograficamente sicuri (CSPRNG), mentre 6 bit sono riservati per la versione (0100) e la variante (10xx).

Layout dei Bit e Struttura Binaria

Distribuzione dettagliata dei 128 bit secondo gli standard RFC.

Nome CampoIntervallo BitScopo e Descrizione
random_hi48 bit (0-47)Entropia pseudocasuale crittograficamente sicura.
ver4 bit (48-51)Valore binario costante 0100 (identifica la Versione 4).
random_mid12 bit (52-63)Entropia pseudocasuale crittograficamente sicura.
var2 bit (64-65)Valore binario costante 10 (variante standard RFC).
random_lo62 bit (66-127)Entropia pseudocasuale crittograficamente sicura.

Vantaggi e Punti di Forza

  • Massima privacy: nessuna divulgazione di timestamp, indirizzi MAC o parametri di rete.
  • Supporto universale in tutti i linguaggi di programmazione, librerie e motori di database.
  • Completamente imprevedibile e protetto contro attacchi di enumerazione IDOR.
!

Considerazioni e Compromessi

  • Prestazioni di scrittura inferiori negli indici B-Tree a causa della dispersione casuale delle pagine di memoria.
  • Nessun ordinamento cronologico intrinseco (necessita di una colonna created_at separata).

Ideale per

  • Chiavi API, session token, link di reimpostazione password e parametri di stato OAuth.
  • ID utente opachi visibili nei percorsi URL del frontend.
  • Chiavi di cache distribuite (Redis, Memcached) e identificatori non indicizzati su disco.

Da evitare per

  • Tabelle relazionali ad altissimo throughput di scrittura (è preferibile UUIDv7).
  • Dataset che richiedono un ordinamento lessicografico naturale.

Esempi di Implementazione del Codice

Native Web CryptoJavaScript / TypeScript
// Modern browsers and Node.js 14.17+
const id = crypto.randomUUID();
console.log(id); // e.g. "c9a646d3-9c61-4cc9-bc0c-930438cf38cf"
Python Standard LibraryPython
import uuid

id = uuid.uuid4()
print(id) # e.g. "f47ac10b-58cc-4372-a567-0e02b2c3d479"
Go (google/uuid)Go
package main

import (
  "fmt"
  "github.com/google/uuid"
)

func main() {
  id := uuid.New()
  fmt.Println(id.String())
}

Domande Frequenti

Quante combinazioni possibili esistono per UUIDv4?
Con 122 bit di entropia casuale (circa 5,3 × 10³⁶ valori possibili), la probabilità di generare una collisione è inferiore a una su un miliardo, anche generando un miliardo di UUID al secondo per 85 anni consecutivi.
Questo generatore utilizza Math.random()?
No. Utilizza esclusivamente la Web Crypto API standard (crypto.getRandomValues), che attinge direttamente dal generatore crittografico CSPRNG del kernel del sistema operativo.