Che cos'è un UUID v3?
Un UUID v3 si calcola applicando MD5 all'UUID del namespace insieme al nome, poi fissando i bit di versione e variante. La stessa coppia (namespace + nome) produce sempre lo stesso UUID.
MD5 non è più considerato sicuro, ma qui serve solo a derivare identificatori, non a proteggere nulla. Se puoi scegliere, il v5 fa la stessa cosa con SHA-1.
Come si usa
- Scegli il namespace: DNS, URL, OID o X.500.
- Scrivi il nome, per esempio
example.com. - Fai clic su Genera: il risultato è sempre identico per quella coppia.
Casi d'uso
- Identificatori stabili per risorse che hanno già una chiave naturale.
- Sincronizzare record fra sistemi senza una base comune.
- Generare chiavi riproducibili in script e test automatici.
Le versioni UUID in breve
| Versione | Ordinabile | Basata su | Usala per |
|---|---|---|---|
| v1 | No | Timestamp + indirizzo MAC | Sistemi storici che si aspettano ancora il v1 |
| v3 | No | Hash MD5 di un nome | Identificatori deterministici quando MD5 è obbligatorio |
| v4 | No | 122 bit casuali | Quasi tutti gli identificatori di uso generale |
| v5 | No | Hash SHA-1 di un nome | Quando lo stesso nome deve dare sempre lo stesso ID |
| v6 | Sì | Timestamp riordinato | Identificatori ordinabili senza rinunciare al casuale |
| v7 | Sì | Tempo Unix in millisecondi | Chiavi primarie di database e ID di eventi |
| v8 | No | Il tuo layout di bit | Formati proprietari o sperimentali |
Tutte e sette le versioni sono da 128 bit e si scrivono nella stessa forma 8-4-4-4-12. Cambia solo il significato dei bit.
Domande frequenti
Perché lo stesso nome dà sempre lo stesso UUID?
Perché il v3 è una funzione deterministica: l'UUID si calcola solo dall'input, senza casualità né orologio. È una proprietà, non un difetto: l'identificatore si può ricostruire senza doverlo salvare.
v3 o v5?
Se parti da zero, v5: usa SHA-1 e non trascina le debolezze di MD5. Il v3 resta per i sistemi che lo impiegano già.
L'UUID cambia se cambio namespace?
Cambia del tutto. Il namespace fa parte dell'input, quindi lo stesso nome in DNS e in URL produce due UUID diversi.