¿Qué es UUID v5?
Versión 5 de UUID es un identificador de 128 bits basado en 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
- Name: Valor de cadena definido por el usuario dentro del espacio de nombres
- Hash SHA-1: Algoritmo criptográfico usado para generar el resultado
Ejemplo de formato: 2ed6657d-e927-5eb1-9a03-0242ac130003
Cómo funciona UUID v5
- Seleccione un UUID de espacio de nombres (predefinido o personalizado)
- Concatene el UUID del espacio de nombres y la cadena de nombre
- Calcule el hash SHA-1 del valor concatenado
- Establezca 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
Advantages | Considerations |
---|---|
|
|
Estructura de UUID v5
Bits | Content |
---|---|
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
Version | Basado en | Caso de uso | Privacy |
---|---|---|---|
UUID v1 | Tiempo + MAC | IDs ordenados por tiempo | ⚠️ Revela MAC |
UUID v3 | Espacio de nombres + MD5 | IDs deterministas | ✅ Privado |
UUID v4 | Random | 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 |
Espacios de nombres predefinidos
Namespace | UUID | Purpose |
---|---|---|
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 OID 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 a través de sistemas
- Mapeo de URL: Conversión de URLs a identificadores estables
- Gestión de configuración: Seguimiento de elementos de configuración nombrados
- Eliminación de duplicados de datos: Identificación de registros idénticos
- Federation: Identificadores consistentes entre sistemas
Preguntas frecuentes
¿Es UUID v5 mejor que UUID v3?
Sí, para la mayoría de los casos de uso. UUID v5 usa SHA-1 que es criptográficamente más fuerte que el algoritmo MD5 usado en UUID v3. Sin embargo, ambos proporcionan generación determinista.
¿Pueden colisionar los valores 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 nombre elimina virtualmente el riesgo de colisión.
¿SHA-1 es 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 para propósitos de seguridad sino para 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), puede crear espacios de nombres personalizados usando cualquier UUID válido, típicamente un UUID aleatorio v4.
¿El mismo nombre siempre genera 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.