Cos'è UUID v7?
Versione UUID 7 è un identificatore a 128 bit ordinato nel tempo (stringa di 36 caratteri) proposto nella nuova bozza di specifica UUID. Consiste in:
- Timestamp Unix: 48 bit di tempo Unix con precisione al millisecondo
- Dati casuali: 74 bit di dati casuali
- Bit di versione e variante: 6 bit per l'identificazione del formato
Esempio di formato: 017f22e2-79b0-7cc3-98c4-dc0c0c07398f
Come funziona UUID v7
- Ottieni il timestamp Unix corrente in millisecondi (48 bit)
- Genera 74 bit di dati casuali crittograficamente sicuri
- Imposta i bit di versione su 0111 (versione 7)
- Imposta i bit di variante su 10 (standard RFC 4122)
- Assembla come 32 cifre esadecimali con trattini: formato 8-4-4-4-12
Vantaggi e considerazioni
Advantages | Considerations |
---|---|
|
|
Struttura UUID v7
Bits | Content |
---|---|
0-47 | Timestamp Unix (millisecondi) |
48-51 | Versione (0111 per v7) |
52-63 | Dati casuali |
64-65 | Variante (10 per RFC4122) |
66-127 | Dati casuali |
UUID v7 vs. altre versioni
Version | Basato su | Caso d'uso | Privacy |
---|---|---|---|
UUID v1 | Tempo + MAC | ID ordinati per tempo | ⚠️ Rivela MAC |
UUID v3 | Namespace + MD5 | ID deterministici | ✅ Privato |
UUID v4 | Random | ID casuali sicuri | ✅ Privato |
UUID v5 | Namespace + SHA-1 | ID deterministici | ✅ Privato |
UUID v6 | Tempo (riordinato) | ID ordinabili | ⚠️ Rivela MAC |
UUID v7 | Tempo + casuale | ID ordinabili | ✅ Privato |
Casi d'uso comuni
- Chiavi primarie del database: Indici efficienti
- Sistemi distribuiti: Ordinati per tempo senza coordinamento
- Applicazioni moderne: Identificatori focalizzati sulla privacy
- Microservices: ID ordinabili cross-service
- Event sourcing: ID evento cronologici
- Data warehousing: ID analitici ordinati per tempo
Domande frequenti
Qual è il vantaggio di UUID v7 rispetto a v1 o v6?
UUID v7 utilizza timestamp Unix in millisecondi e dati casuali invece di indirizzi MAC, offrendo protezione della privacy mantenendo l'ordinabilità per tempo di generazione.
UUID v7 è uno standard ufficiale?
UUID v7 è attualmente una bozza di specifica nel documento proposto RFC 4122bis. Non è ancora uno standard RFC ufficiale ma è implementato in molte librerie UUID.
Posso estrarre il tempo di creazione da UUID v7?
Sì. Il timestamp Unix in millisecondi può essere estratto dai primi 48 bit e convertito in una data/ora standard.
Gli UUID v7 sono ordinabili per tempo di creazione?
Sì. UUID v7 è progettato per essere ordinabile lessicograficamente, con il timestamp Unix nei bit più significativi, permettendo il confronto diretto delle stringhe per corrispondere all'ordine cronologico.
UUID v7 espone informazioni di sistema?
No. A differenza di v1/v6, UUID v7 non utilizza indirizzi MAC. Combina timestamp con dati casuali, proteggendo la privacy mantenendo l'ordinabilità.