Generatore UUID Versione 1 (Timestamp)

Genera UUID basati su timestamp con indirizzo MAC per un'identificazione unica ordinata nel tempo

Prova questi esempi:

Cos'è UUID v1?

Versione UUID 1 è un identificatore a 128 bit basato sul tempo (stringa di 36 caratteri) secondo RFC 4122. Combina:

  • Timestamp: valore a 60 bit (precisione di 100 nanosecondi dal 15-10-1582)
  • Sequenza dell'orologio: contatore a 14 bit per le regolazioni dell'orologio
  • ID nodo: valore a 48 bit (tipicamente indirizzo MAC)

Esempio di formato: 2ed6657d-e927-11eb-9a03-0242ac130003

Come funziona UUID v1

  1. Calcolare il timestamp corrente (intervalli di 100ns dal 15-10-1582)
  2. Ottenere/incrementare la sequenza dell'orologio a 14 bit (per unicità se l'orologio torna indietro)
  3. Ottenere l'ID nodo a 48 bit (di solito dall'indirizzo MAC)
  4. Impostare i bit di versione (0001) e i bit di variante (10)
  5. Assemblare come 32 cifre esadecimali con trattini: formato 8-4-4-4-12

Vantaggi e considerazioni

AdvantagesConsiderations
  • Ordinato per tempo (ordinabile)
  • Generazione ad alte prestazioni
  • Generazione distribuita
  • Tempo di creazione incorporato
  • Preoccupazioni sulla privacy dell'indirizzo MAC
  • Problemi di sincronizzazione dell'orologio
  • Più prevedibile rispetto agli UUID casuali
  • Non è sicuro crittograficamente

Struttura UUID v1

BitsContent
0-3132 bit bassi del timestamp
32-4716 bit medi del timestamp
48-5912 bit alti del timestamp
60-63Versione (0001 per v1)
64-65Variante (10 per RFC4122)
66-79Sequenza dell'orologio (14 bit)
80-127ID nodo (48 bit)

UUID v1 vs. altre versioni

VersionBasato suCaso d'usoPrivacy
UUID v1Tempo + MACID ordinati per tempo⚠️ Rivela MAC
UUID v3Namespace + MD5ID deterministici✅ Privato
UUID v4RandomID casuali sicuri✅ Privato
UUID v5Namespace + SHA-1ID deterministici✅ Privato
UUID v6Tempo (riordinato)ID ordinabili⚠️ Rivela MAC
UUID v7Tempo + casualeID ordinabili✅ Privato

Casi d'uso comuni

  • Chiavi di database: database distribuiti
  • Log di audit: tracciamento ordinato per tempo
  • ID transazione: processi aziendali
  • Tracciamento sessione: applicazioni web
  • Indirizzamento contenuti: sistemi CMS
  • Messaggi IoT: comunicazione del dispositivo

Domande frequenti

UUID v1 è sicuro crittograficamente?

No. UUID v1 è prevedibile se timestamp e indirizzo MAC sono noti. Per la sicurezza, usa UUID v4 casuale.

I valori UUID v1 possono collidere?

Le collisioni sono estremamente improbabili in pratica grazie alla precisione del timestamp, ai contatori della sequenza dell'orologio e agli identificatori nodo.

Posso estrarre il tempo di creazione da un UUID v1?

Sì. La componente timestamp può essere estratta con algoritmi appropriati disponibili nella maggior parte delle librerie UUID.

Gli UUID v1 sono ordinabili per tempo di creazione?

Sì, ma sono necessarie funzioni di ordinamento speciali. Il confronto diretto di stringhe non funziona perché i bit temporali non sono sequenziali.

UUID v1 espone il mio indirizzo MAC?

Di default, sì. La maggior parte delle implementazioni usa l'indirizzo MAC per l'ID nodo. Le implementazioni orientate alla privacy possono usare ID nodo casuali.

Resources