Generatore UUID Versione 5 (Basato su nome SHA-1)

Genera UUID coerenti usando namespace e nome con hashing SHA-1

Impostazioni namespaceSHA-1

Le UUID versione v3 e v5 richiedono un namespace e un nome per generare UUID deterministici.

Deve essere un UUID valido. Usa il menu a tendina per selezionare un namespace predefinito.
Qualsiasi stringa di testo che sarà hashata per creare l'UUID.

Prova questi esempi:

Cos'è UUID v5?

UUID versione 5 è un identificatore a 128 bit basato su namespace (stringa di 36 caratteri) definito in RFC 4122. Combina:

  • Namespace UUID: UUID predefinito o personalizzato per delimitare la generazione
  • Name: Valore stringa definito dall'utente all'interno del namespace
  • SHA-1 hash: Algoritmo crittografico usato per generare il risultato

Esempio di formato: 2ed6657d-e927-5eb1-9a03-0242ac130003

Come funziona UUID v5

  1. Seleziona un namespace UUID (predefinito o personalizzato)
  2. Concatena il namespace UUID e la stringa nome
  3. Calcola l'hash SHA-1 del valore concatenato
  4. Imposta i bit di versione (0101) e i bit di variante (10)
  5. Assemblare come 32 cifre esadecimali con trattini: formato 8-4-4-4-12

Vantaggi e considerazioni

AdvantagesConsiderations
  • Deterministico (stesso input = stesso UUID)
  • Organizzazione con namespace
  • Nessuna dipendenza da rete o tempo
  • Nessun problema di privacy (nessun indirizzo MAC)
  • Non ordinati per tempo
  • Lo stesso input crea sempre lo stesso UUID
  • La selezione del namespace influisce sull'unicità
  • SHA-1 ha note debolezze crittografiche

Struttura UUID v5

BitsContent
0-47Primi 48 bit dell'hash SHA-1
48-51Versione (0101 per v5)
52-63Successivi 12 bit dell'hash SHA-1
64-65Variante (10 per RFC4122)
66-127Restanti 62 bit dell'hash SHA-1

UUID v5 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

Namespace predefiniti

NamespaceUUIDPurpose
DNS6ba7b810-9dad-11d1-80b4-00c04fd430c8Per nomi di dominio
URL6ba7b811-9dad-11d1-80b4-00c04fd430c8Per URL
OID6ba7b812-9dad-11d1-80b4-00c04fd430c8Per ISO OID
X.500 DN6ba7b814-9dad-11d1-80b4-00c04fd430c8Per nomi distinti X.500

Casi d'uso comuni

  • Indirizzamento del contenuto: ID coerenti per contenuti identici
  • Sistemi distribuiti: Risorse denominate tra sistemi
  • Mappatura URL: Conversione di URL in identificatori stabili
  • Gestione della configurazione: Tracciamento degli elementi di configurazione nominati
  • Deduplicazione dati: Identificazione di record identici
  • Federation: Identificatori coerenti tra sistemi

Domande frequenti

UUID v5 è migliore di UUID v3?

Sì, per la maggior parte dei casi d'uso. UUID v5 utilizza SHA-1 che è crittograficamente più forte dell'algoritmo MD5 usato in UUID v3. Tuttavia, entrambi forniscono generazione deterministica.

I valori UUID v5 possono collidere?

Le collisioni sono teoricamente possibili ma estremamente improbabili in pratica a causa delle proprietà di SHA-1. L'uso di namespace o stringhe nome differenti elimina praticamente il rischio di collisione.

SHA-1 è abbastanza sicuro per UUID v5?

Per scopi UUID, SHA-1 rimane adatto nonostante le sue debolezze crittografiche. UUID v5 non è destinato a scopi di sicurezza ma a generare identificatori coerenti.

Posso creare un namespace personalizzato per UUID v5?

Sì. Mentre RFC 4122 definisce namespace standard (DNS, URL, OID, X.500), puoi creare namespace personalizzati usando qualsiasi UUID valido, tipicamente un UUID casuale v4.

Lo stesso nome genera sempre lo stesso UUID v5?

Sì, ma solo all'interno dello stesso namespace. Lo stesso nome in namespace diversi genererà UUID differenti, caratteristica chiave per organizzare gli identificatori.

Resources