¿Qué son los UUIDs?
UUID (Identificador Universalmente Único) es un formato de identificador estandarizado diseñado para ser único a nivel global en espacio y tiempo. Los UUIDs son valores de 128 bits representados típicamente como 32 dígitos hexadecimales, mostrados en cinco grupos separados por guiones: 123e4567-e89b-12d3-a456-426614174000
.
Los UUIDs están definidos por el estándar RFC 9562 (que reemplaza al anterior RFC 4122) y se utilizan en plataformas informáticas para identificar información sin necesidad de registro o coordinación centralizada.
Formato de UUID
Todos los UUIDs comparten un formato común que consiste en 36 caracteres (32 dígitos hexadecimales más 4 guiones) organizados en el patrón:
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
Donde:
x
es cualquier dígito hexadecimal (0-9, a-f)M
indica la versión del UUID (1-7)N
indica la variante del UUID (típicamente 8, 9, A o B para UUIDs modernos)
Comparación de versiones de UUID
Versión | Nombre | Método de Generación | Ordenado por Tiempo | Casos de Uso |
---|---|---|---|---|
UUID v1 | Marca de Tiempo | Marca de tiempo actual + ID de nodo (MAC) | Sí (parcialmente) | Registros, sistemas distribuidos |
UUID v3 | Basado en Nombre (MD5) | Hash MD5 de espacio de nombres + nombre | No | IDs consistentes para la misma entrada |
UUID v4 | Aleatorio | Números aleatorios o pseudoaleatorios | No | Propósito general, el más común |
UUID v5 | Basado en Nombre (SHA-1) | Hash SHA-1 de espacio de nombres + nombre | No | IDs consistentes con hash más fuerte |
UUID v6 | Marca de Tiempo Reordenada | Marca de tiempo (ordenada para clasificación) | Sí | Claves de base de datos, registros ordenados por tiempo |
UUID v7 | Marca de Tiempo Unix | Marca de tiempo Unix + datos aleatorios | Sí | Identificadores modernos ordenables |
Nil UUID | UUID Nulo | Todos ceros | N/A | Valor especial, marcador no inicializado |
Ventajas de los UUIDs
- No Requiere Coordinación: Generar IDs sin coordinación central
- Unicidad Global: Probabilidad extremadamente baja de colisión
- Longitud Fija: Representación consistente de 36 caracteres
- Multiplataforma: Compatible con prácticamente todos los lenguajes de programación
- Versátil: Diferentes versiones para diferentes casos de uso
Alternativas no estándar a UUID
Tipo de ID | Descripción | Ventajas | Desventajas |
---|---|---|---|
GUID | Implementación de UUID de Microsoft | Equivalente funcional a UUID | Algunas diferencias de implementación en sistemas antiguos |
ULID | Identificador Universalmente Único Ordenable Lexicográficamente | Ordenable lexicográficamente, marca de tiempo primero, insensible a mayúsculas | Más reciente, menos adopción generalizada |
Snowflake ID | Sistema de ID distribuido de Twitter | Ordenable por tiempo, compacto (64 bits) | Requiere coordinación central |
CUID/CUID2 | IDs resistentes a colisiones | Cortos, adecuados para generación en el cliente | No es un estándar oficial |
Nano ID | Generador de cadenas únicas pequeñas, seguras y amigables para URL | Más pequeño que UUID, alfabeto configurable | No estandarizado |
Short UUID | Codificación más corta de UUIDs estándar | Representación más compacta | Requiere conversión a/desde UUID estándar |
Nil UUID | UUID con todos los bits en cero | Significado semántico especial | No único (usado como valor especial) |
Minecraft UUID | UUIDs con o sin guiones | Compatible con UUIDs estándar | Solo diferencias de formato |
Aplicaciones Prácticas
- Claves Primarias de Base de Datos: Especialmente en bases de datos distribuidas o replicadas
- Sistemas Distribuidos: Identificar entidades en múltiples sistemas
- Aplicaciones Web: Identificadores de sesión, seguimiento de usuarios anónimos
- Gestión de Contenidos: Identificadores de documentos y medios
- APIs: Identificadores de solicitudes y transacciones para rastreo y depuración
- Internet de las Cosas: Identificación de dispositivos sin registro central
- Sincronización de Datos: Identificar registros en múltiples almacenes de datos
- Licencias de Software: Claves únicas de producto o licencia