5.4. UUID Version 4 (UUID versione 4)
5.4. UUID Version 4
UUIDv4 è destinato a generare UUID da numeri veramente casuali o pseudocasuali.
Un'implementazione può generare 128 bit di dati casuali che vengono utilizzati per riempire i campi UUID nella figura 8. La versione UUID e la variante sostituiscono quindi i rispettivi bit come definito dalle sezioni 4.1 e 4.2.
In alternativa, un'implementazione PUÒ scegliere di generare casualmente il numero esatto di bit richiesti per random_a, random_b e random_c (122 bit in totale) e quindi concatenare la versione e la variante nella posizione richiesta.
Per le linee guida sulla generazione di dati casuali, vedere la sezione 6.9.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| random_a |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| random_a | ver | random_b |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|var| random_c |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| random_c |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figura 8: Layout dei campi e dei bit UUIDv4
random_a: I primi 48 bit del layout che possono essere riempiti con dati casuali come specificato nella sezione 6.9. 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 0b0100 (4). Occupa i bit da 48 a 51 dell'ottetto 6.
random_b: 12 bit aggiuntivi del layout che possono essere riempiti con dati casuali come da sezione 6.9. 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.
random_c: Gli ultimi 62 bit del layout immediatamente successivi al campo var da riempire con dati casuali come da sezione 6.9. Occupa i bit da 66 a 127 (ottetti 8-15).