¿Qué es UUID v5?
UUID versión 5 es un identificador de 128 bits basado en un espacio de nombres (cadena de 36 caracteres) definido en RFC 4122. Combina:
- UUID de espacio de nombres: UUID predefinido o personalizado para delimitar la generación
- Nombre: Valor de cadena definido por el usuario dentro del espacio de nombres
- Hash SHA-1: Algoritmo criptográfico utilizado para generar el resultado
Ejemplo de formato: 2ed6657d-e927-5eb1-9a03-0242ac130003
Cómo funciona UUID v5
- Seleccionar un UUID de espacio de nombres (predefinido o personalizado)
- Concatenar el UUID del espacio de nombres y la cadena de nombre
- Calcular el hash SHA-1 del valor concatenado
- Establecer los bits de versión (0101) y los bits de variante (10)
- Ensamblar como 32 dígitos hexadecimales con guiones: formato 8-4-4-4-12
Ventajas y Consideraciones
Ventajas | Consideraciones |
---|---|
|
|
Estructura de UUID v5
Bits | Contenido |
---|---|
0-47 | Primeros 48 bits del hash SHA-1 |
48-51 | Versión (0101 para v5) |
52-63 | Siguientes 12 bits del hash SHA-1 |
64-65 | Variante (10 para RFC4122) |
66-127 | 62 bits restantes del hash SHA-1 |
UUID v5 vs. otras versiones
Versión | Basado en | Uso | Privacidad |
---|---|---|---|
UUID v1 | Tiempo + MAC | IDs ordenados por tiempo | ⚠️ 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 ordenados | ⚠️ Revela MAC |
UUID v7 | Tiempo + aleatorio | IDs ordenados | ✅ Privado |
Espacios de nombres predefinidos
Espacio de nombres | UUID | Propósito |
---|---|---|
DNS | 6ba7b810-9dad-11d1-80b4-00c04fd430c8 | Para nombres de dominio |
URL | 6ba7b811-9dad-11d1-80b4-00c04fd430c8 | Para URLs |
OID | 6ba7b812-9dad-11d1-80b4-00c04fd430c8 | Para OIDs ISO |
X.500 DN | 6ba7b814-9dad-11d1-80b4-00c04fd430c8 | Para Nombres Distinguidos X.500 |
Casos de uso comunes
- Dirección de contenido: IDs consistentes para contenido idéntico
- Sistemas distribuidos: Recursos nombrados entre sistemas
- Mapeo de URLs: Convertir URLs en identificadores estables
- Gestión de configuración: Seguimiento de elementos de configuración nombrados
- Deduplicación de datos: Identificación de registros idénticos
- Federación: Identificadores consistentes entre sistemas
Preguntas frecuentes
¿Es UUID v5 mejor que UUID v3?
Sí, para la mayoría de los casos. UUID v5 utiliza SHA-1, que es criptográficamente más fuerte que el algoritmo MD5 utilizado en UUID v3. Sin embargo, ambos proporcionan generación determinista.
¿Pueden colisionar los valores de UUID v5?
Las colisiones son teóricamente posibles pero extremadamente improbables en la práctica debido a las propiedades de SHA-1. Usar diferentes espacios de nombres o cadenas de nombres prácticamente elimina el riesgo de colisión.
¿Es SHA-1 lo suficientemente seguro para UUID v5?
Para propósitos de UUID, SHA-1 sigue siendo adecuado a pesar de sus debilidades criptográficas. UUID v5 no está destinado a fines de seguridad, sino a generar identificadores consistentes.
¿Puedo crear mi propio espacio de nombres para UUID v5?
Sí. Aunque RFC 4122 define espacios de nombres estándar (DNS, URL, OID, X.500), puedes crear espacios de nombres personalizados utilizando cualquier UUID válido, típicamente un UUID v4 aleatorio.
¿El mismo nombre siempre generará el mismo UUID v5?
Sí, pero solo dentro del mismo espacio de nombres. El mismo nombre en diferentes espacios de nombres generará UUIDs diferentes, lo cual es una característica clave para organizar identificadores.