Generatore UUID Versione 3 (Basato su Nome MD5)

Genera UUID coerenti usando namespace e nome con hashing MD5

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 v3?

Versione UUID 3 è un identificatore a 128 bit basato su namespace (stringa di 36 caratteri) da RFC 4122 che utilizza hashing MD5. Consiste in:

  • Namespace UUID: Un namespace UUID predefinito o personalizzato
  • Name: Una stringa fornita dall'utente che viene hashata
  • Hash MD5: Applicato alla combinazione namespace + nome

Esempio di formato: 9125a8dc-52ee-365b-a5aa-81b0b3681cf6

Come funziona UUID v3

  1. Seleziona un namespace UUID (predefinito o personalizzato)
  2. Concatena i byte del namespace UUID con i byte della stringa nome
  3. Calcola hash MD5 del valore concatenato
  4. Imposta i bit della versione a 0011 (versione 3)
  5. Imposta i bit della variante a 10 (standard RFC 4122)
  6. Assembla come 32 cifre esadecimali con trattini: formato 8-4-4-4-12

Vantaggi e considerazioni

AdvantagesConsiderations
  • Generazione deterministica
  • Stesso input = stesso UUID
  • Nessuno stato richiesto
  • Nessuna preoccupazione per la privacy
  • MD5 è crittograficamente debole
  • Non ordinato/ordinabile per tempo
  • Preferito UUID v5 (SHA-1)
  • Nessun tempo di creazione incorporato

Struttura UUID v3

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

Namespace predefiniti

NameUUIDPurpose
DNS6ba7b810-9dad-11d1-80b4-00c04fd430c8Nomi di dominio
URL6ba7b811-9dad-11d1-80b4-00c04fd430c8URLs
OID6ba7b812-9dad-11d1-80b4-00c04fd430c8OID ISO
X.500 DN6ba7b814-9dad-11d1-80b4-00c04fd430c8Nomi distinti X.500

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

  • Identificatori basati su URL: Creazione di UUID da URL
  • ID specifici per dominio: Conversione di nomi DNS in UUID
  • ID file deterministici: Indirizzamento contenuti
  • ID utente: Da email o nome utente
  • Voci di configurazione: Per chiavi coerenti
  • Riferimenti a documenti: Sistemi di gestione contenuti

Domande frequenti

UUID v3 è crittograficamente sicuro?

Non proprio. UUID v3 usa MD5, che ha note debolezze crittografiche. Per maggiore sicurezza, considera UUID v5 (SHA-1) o UUID v4 (casuale).

Gli stessi input producono sempre lo stesso UUID v3?

Sì. UUID v3 è deterministico - lo stesso namespace e nome produrranno sempre lo stesso UUID, utile per ID riproducibili.

Qual è la differenza tra UUID v3 e v5?

Funzionano allo stesso modo, tranne che v3 usa MD5 mentre v5 usa SHA-1. UUID v5 è generalmente preferito perché SHA-1 è crittograficamente più forte di MD5.

Posso creare i miei namespace?

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

UUID v3 è adatto per token di sicurezza?

No. A causa delle debolezze di MD5 e della natura deterministica, UUID v3 non è raccomandato per token di sicurezza o qualsiasi cosa richieda imprevedibilità.

Resources