Variantes y versiones:
Un UUID tiene variantes y versiones .
El 4 en este caso le dice que es la versión 4. Otras versiones varían de 1 a 5.
Esas versiones tienen variantes 8, 9, A y B, por lo tanto, la z en su UUID le indica qué variante es.
La variante se utiliza para indicar qué diseño tiene el UUID. Las variantes también son importantes cuando se trata de compatibilidad con versiones anteriores.
Longitud de las cadenas:
En cuanto a por qué las cadenas tienen diferentes longitudes, un UUID tiene ciertas partes, que puede usar para generar un UUID dependiendo de varios parámetros:
UUID = time-low "-"
time-mid "-"
time-high-and-version "-"
clock-seq-and-reserved | clock-seq-low "-"
node
time-low
tiene 16 bits, time-mid
tiene 8 bits, ... Las longitudes se construyeron históricamente para que encajen en el siguiente esquema:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| time_low |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| time_mid | time_hi_and_version |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|clk_seq_hi_res | clk_seq_low | node (0-1) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| node (2-5) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Así que esto debería darte una idea, por qué las longitudes de las cadenas son diferentes.
UUID y seguridad:
Por lo general, los UUID no son seguros: enlace ... y vea el comentario de Michael Kjörling para más ejemplos y explicaciones.
Los UUID no se crearon para ser cripto-gráficamente seguros, por lo que debería usar otra cosa hecha especialmente para ese propósito.
El RFC para UUID incluso tiene una sección, sobre seguridad, que advierte a los usuarios de usar mal UUID para eso:
-
Consideraciones de seguridad
No asuma que los UUID son difíciles de adivinar; no deben ser utilizados
como capacidades de seguridad (identificadores cuya mera posesión otorga
acceso), por ejemplo. Una fuente de números aleatorios predecible será
exacerbar la situación.
Consulte el RFC para obtener detalles técnicos: enlace