Passa al contenuto principale

5.3. UUID Version 3 (UUID versione 3)

5.3. UUID Version 3

UUIDv3 è destinato a generare UUID da nomi che sono tratti e univoci all'interno di un certo namespace, come da sezione 6.5.

I valori UUIDv3 sono creati calcolando un hash MD5 [RFC1321] su un dato valore di ID del namespace (sezione 6.6) concatenato con il valore del nome desiderato dopo che entrambi sono stati convertiti in una sequenza canonica di ottetti, come definito dagli standard o convenzioni del suo namespace, in ordine di byte di rete. Questo valore MD5 viene quindi utilizzato per popolare tutti i 128 bit del layout UUID. La versione UUID e la variante sostituiscono quindi i rispettivi bit come definito dalle sezioni 4.2 e 4.1. Un esempio di questa sostituzione di bit può essere trovato nell'appendice A.2.

Le informazioni sulla selezione di un formato canonico del nome desiderato all'interno di un dato namespace possono essere trovate nella sezione 6.5 sotto il titolo "A note on names".

Dove possibile, UUIDv5 DOVREBBE essere utilizzato al posto di UUIDv3. Per ulteriori informazioni sulle considerazioni di sicurezza MD5, vedere [RFC6151].

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| md5_high |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| md5_high | ver | md5_mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|var| md5_low |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| md5_low |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figura 7: Layout dei campi e dei bit UUIDv3

md5_high: I primi 48 bit del layout sono riempiti con i 48 bit più significativi e più a sinistra del valore MD5 calcolato. Occupa i bit da 0 a 47 (ottetti 0-5).

ver: Il campo versione di 4 bit come definito dalla sezione 4.2, impostato a 0b0011 (3). Occupa i bit da 48 a 51 dell'ottetto 6.

md5_mid: 12 bit aggiuntivi del layout costituiti dai 12 bit meno significativi e più a destra dei 16 bit immediatamente successivi a md5_high del valore MD5 calcolato. Occupa i bit da 52 a 63 (ottetti 6-7).

var: Il campo variante di 2 bit come definito dalla sezione 4.1, impostato a 0b10. Occupa i bit 64 e 65 dell'ottetto 8.

md5_low: Gli ultimi 62 bit del layout immediatamente successivi al campo var da riempire con i bit meno significativi e più a destra degli ultimi 64 bit del valore MD5 calcolato. Occupa i bit da 66 a 127 (ottetti 8-15).