¿Qué es UUID v3?
UUID versión 3 es un identificador de 128 bits basado en un espacio de nombres (cadena de 36 caracteres) de la RFC 4122 que utiliza hashing MD5. Consiste en:
- UUID de espacio de nombres: Un espacio de nombres UUID predefinido o personalizado
- Nombre: Una cadena proporcionada por el usuario que se hash
- Hash MD5: Aplicado a la combinación de espacio de nombres + nombre
Ejemplo de formato: 9125a8dc-52ee-365b-a5aa-81b0b3681cf6
¿Cómo funciona UUID v3?
- Selecciona un UUID de espacio de nombres (predefinido o personalizado)
- Concatena los bytes del UUID de espacio de nombres con los bytes de la cadena de nombre
- Calcula el hash MD5 del valor concatenado
- Establece los bits de versión en 0011 (versión 3)
- Establece los bits de variante en 10 (estándar RFC 4122)
- Ensambla como 32 dígitos hexadecimales con guiones: formato 8-4-4-4-12
Ventajas y Consideraciones
Ventajas | Consideraciones |
---|---|
|
|
Estructura de UUID v3
Bits | Contenido |
---|---|
0-47 | Primeros 48 bits del hash MD5 |
48-51 | Versión (0011 para v3) |
52-63 | Próximos 12 bits del hash MD5 |
64-65 | Variante (10 para RFC4122) |
66-127 | Restantes 62 bits del hash MD5 |
Espacios de Nombres Predefinidos
Nombre | UUID | Propósito |
---|---|---|
DNS | 6ba7b810-9dad-11d1-80b4-00c04fd430c8 | Nombres de dominio |
URL | 6ba7b811-9dad-11d1-80b4-00c04fd430c8 | URLs |
OID | 6ba7b812-9dad-11d1-80b4-00c04fd430c8 | OID ISO |
X.500 DN | 6ba7b814-9dad-11d1-80b4-00c04fd430c8 | Nombres Distinguibles X.500 |
UUID v3 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 ordenables | ⚠️ Revela MAC |
UUID v7 | Tiempo + aleatorio | IDs ordenables | ✅ Privado |
Casos de Uso Comunes
- Identificadores basados en URL: Creando UUIDs a partir de URLs
- IDs específicos de dominio: Convirtiendo nombres DNS a UUIDs
- IDs de archivo deterministas: Direccionamiento de contenido
- IDs de usuario: A partir de correo electrónico o nombre de usuario
- Entradas de configuración: Para claves consistentes
- Referencias de documentos: Sistemas de gestión de contenido
Preguntas Frecuentes
¿Es UUID v3 criptográficamente seguro?
No realmente. UUID v3 utiliza MD5, que tiene debilidades criptográficas conocidas. Para mayor seguridad, considera UUID v5 (SHA-1) o UUID v4 (aleatorio).
¿Los mismos inputs siempre producirán el mismo UUID v3?
Sí. UUID v3 es determinista: el mismo espacio de nombres y nombre siempre producirán el mismo UUID, lo que lo hace útil para IDs reproducibles.
¿Cuál es la diferencia entre UUID v3 y v5?
Funcionan de manera idéntica excepto que v3 utiliza MD5 mientras que v5 utiliza SHA-1. UUID v5 es generalmente preferido ya que SHA-1 es criptográficamente más fuerte que MD5.
¿Puedo crear mis propios espacios de nombres?
Sí. Mientras que la RFC 4122 define espacios de nombres estándar (DNS, URL, OID, X.500), puedes crear espacios de nombres personalizados usando cualquier UUID válido.
¿Es UUID v3 adecuado para tokens de seguridad?
No. Debido a las debilidades de MD5 y la naturaleza determinista, UUID v3 no se recomienda para tokens de seguridad o cualquier cosa que requiera imprevisibilidad.