En este artículo
¿Qué es un UUID?
Un UUID (Identificador Universalmente Único) es un identificador de 128 bits que está garantizado a ser único en el espacio y el tiempo sin necesidad de una autoridad central. Los UUID se formatean como 32 dígitos hexadecimales en 5 grupos separados por guiones: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
Existen varias versiones de UUID, cada una generada de forma diferente. La versión 4 (aleatoria) es la más utilizada — genera 122 bits aleatorios, haciendo que las colisiones sean astronómicamente improbables (necesitarías generar 1000 millones de UUID por segundo durante 85 años para tener un 50% de probabilidad de colisión).
Cómo funciona la generación de UUID
UUID v4 utiliza generación aleatoria criptográficamente segura.
- Bits aleatorios — se generan 122 bits aleatorios usando CSPRNG
- Marcado de versión — los bits 12-15 del tercer grupo se establecen en 0100 para indicar la versión 4
- Marcado de variante — los bits 6-7 del cuarto grupo se establecen en 10 para indicar la variante RFC 4122
Pruébalo gratis — sin registro
Generar UUID →Cuándo usar UUID
Los UUID son el tipo de identificador preferido para sistemas distribuidos y bases de datos.
- Claves primarias en bases de datos — usa claves primarias UUID en sistemas distribuidos para evitar conflictos de ID durante las fusiones
- Tokens de sesión — genera UUID para identificadores de sesión y tokens temporales
- Nombres de archivos — usa UUID para generar nombres de archivo únicos para subidas de usuarios y recursos generados
Preguntas frecuentes
¿Cuál es la diferencia entre UUID v1, v3, v4 y v5?
v1 está basado en tiempo e incluye la MAC address, lo que lo hace rastreable. v3 y v5 son deterministas — aplican un hash a un espacio de nombres y un nombre para producir siempre el mismo UUID (v3 usa MD5, v5 usa SHA-1). v4 es aleatorio y el más utilizado para identificadores únicos de propósito general. v7 (estándar emergente) combina marca de tiempo y aleatoriedad para UUID ordenables.
¿Debo usar UUID o enteros auto-incrementales como claves primarias en bases de datos?
Los enteros auto-incrementales son más simples y eficientes en almacenamiento. Los UUID son mejores para sistemas distribuidos, fusión de datos de múltiples fuentes, exposición de IDs en URL sin revelar información de secuencia, y para habilitar la generación de ID en el lado del cliente antes de la inserción en la base de datos. Para aplicaciones de un solo servidor, el auto-incremento suele ser suficiente.
¿Son realmente únicos los UUID?
UUID v4 tiene 2^122 valores posibles — aproximadamente 5.3 × 10^36. La probabilidad de generar dos UUID idénticos es tan pequeña que es efectivamente cero para cualquier aplicación práctica. La paradoja del cumpleaños implica que necesitarías generar aproximadamente 2.71 quintillones de UUID para tener un 50% de probabilidad de colisión.