¿Qué es UUID v1?
UUID versión 1 es un identificador de 128 bits basado en tiempo (cadena de 36 caracteres) según RFC 4122. Combina:
- Marca de tiempo: valor de 60 bits (precisión de 100 nanosegundos desde el 15-10-1582)
- Secuencia de reloj: contador de 14 bits para ajustes de reloj
- ID de nodo: valor de 48 bits (normalmente dirección MAC)
Ejemplo de formato: 2ed6657d-e927-11eb-9a03-0242ac130003
Cómo funciona UUID v1
- Calcular la marca de tiempo actual (intervalos de 100 ns desde el 15-10-1582)
- Obtener/incrementar la secuencia de reloj de 14 bits (para unicidad si el reloj retrocede)
- Obtener el ID de nodo de 48 bits (generalmente de la dirección MAC)
- Establecer bits de versión (0001) y bits de variante (10)
- Construir como 32 dígitos hexadecimales con guiones: formato 8-4-4-4-12
Ventajas y consideraciones
Ventajas | Consideraciones |
---|---|
|
|
Estructura de UUID v1
Bits | Contenido |
---|---|
0-31 | 32 bits bajos de la marca de tiempo |
32-47 | 16 bits medios de la marca de tiempo |
48-59 | 12 bits altos de la marca de tiempo |
60-63 | Versión (0001 para v1) |
64-65 | Variante (10 para RFC4122) |
66-79 | Secuencia de reloj (14 bits) |
80-127 | ID de nodo (48 bits) |
UUID v1 vs. otras versiones
Versión | Basado en | Caso de uso | Privacidad |
---|---|---|---|
UUID v1 | Tiempo + MAC | IDs ordenables | ⚠️ Revela MAC |
UUID v3 | Espacio de nombres + MD5 | IDs deterministas | ✅ Privado |
UUID v4 | Aleatorio | IDs aleatorios seguros | ✅ Privado |
UUID v5 | Espacio de nombres + SHA-1 | IDs deterministas | ✅ Privado |
UUID v6 | Tiempo (reordenado) | IDs ordenables | ⚠️ Revela MAC |
UUID v7 | Tiempo + aleatorio | IDs ordenables | ✅ Privado |
Casos de uso comunes
- Claves de base de datos: Bases de datos distribuidas
- Registros de auditoría: Seguimiento ordenado por tiempo
- IDs de transacción: Procesos de negocio
- Seguimiento de sesiones: Aplicaciones web
- Direcciones de contenido: Sistemas CMS
- Mensajes IoT: Comunicación de dispositivos
Preguntas frecuentes
¿UUID v1 es criptográficamente seguro?
No. UUID v1 es predecible si se conocen la marca de tiempo y la dirección MAC. Para mayor seguridad, use UUID aleatorio v4 en su lugar.
¿Pueden colisionar los valores de UUID v1?
Las colisiones son extremadamente improbables en la práctica debido a la precisión de la marca de tiempo, los contadores de secuencia de reloj y los identificadores de nodo.
¿Puedo extraer la hora de creación de un UUID v1?
Sí. El componente de marca de tiempo se puede extraer con algoritmos apropiados disponibles en la mayoría de las librerías de UUID.
¿Los UUID v1 son ordenables por hora de creación?
Sí, pero se necesitan funciones de ordenación especiales. La comparación directa de cadenas no funcionará porque los bits de tiempo no son secuenciales.
¿UUID v1 expone mi dirección MAC?
Por defecto, sí. La mayoría de las implementaciones usan la dirección MAC para el ID de nodo. Las implementaciones centradas en la privacidad pueden usar IDs de nodo aleatorios en su lugar.