¿Qué es un UUID (Universally Unique Identifier)?
Respuesta corta: Un UUID (Universally Unique Identifier) es un identificador de 128 bits expresado como 32 caracteres hexadecimales en 5 grupos separados por guiones (8-4-4-4-12).
Versiones de UUID
UUID v4 es 100% aleatorio (122 bits) — usado para anonimato. UUID v7 incluye timestamp Unix ordenable — recomendado para bases de datos modernas.
- ▸UUID v1 · timestamp + MAC address. Generación rápida pero filtra info de hardware.
- ▸UUID v3 · MD5 de namespace + nombre. Determinista.
- ▸UUID v4 · 122 bits aleatorios. Más usado en bases de datos por privacy.
- ▸UUID v5 · SHA-1 de namespace + nombre. Determinista, más seguro que v3.
- ▸UUID v6 · timestamp reorderable (v1 mejorado).
- ▸UUID v7 · timestamp Unix millisegundos + random. Sortable cronológicamente — recomendado para bases de datos modernas (Postgres, MongoDB).
Formato y estructura
Un UUID estándar es de 128 bits, representados como 32 caracteres hexadecimales en formato 8-4-4-4-12:
- ▸Ejemplo v4:
f47ac10b-58cc-4372-a567-0e02b2c3d479 - ▸Ejemplo v7:
018e7e6a-2c5f-7000-bbb6-2ce3f3e8a9c1
Explicación detallada
Los UUIDs garantizan unicidad sin coordinación central: cualquier sistema puede generar uno y la probabilidad de colisión con otro UUID generado en cualquier parte del mundo es prácticamente cero (1 entre 5.3 × 10^36 para UUID v4). Existen 5 versiones: v1 basado en MAC + timestamp, v3 hash MD5 de namespace+nombre, v4 random (el más usado), v5 hash SHA-1, v7 ordenable por tiempo (nuevo).
Ejemplo
550e8400-e29b-41d4-a716-446655440000 (UUID v4)
Casos de uso comunes
- ▸Primary keys en bases de datos distribuidas
- ▸IDs de transacciones en APIs
- ▸IDs de archivos subidos
- ▸Identificadores de sesión
- ▸Tracking IDs en analytics
Preguntas frecuentes
¿Cuál UUID debo usar?
Para la mayoría de casos: v4 (random). Si necesitás ordenable por tiempo: v7. Si querés determinístico de nombres: v5.
¿UUIDs son seguros para urls públicas?
Sí. v4 son aleatorios y no revelan información. v1 sí revela MAC y timestamp.
¿Cuántos UUIDs puedo generar?
Para que haya 50% chance de colisión necesitarías 2^61 UUIDs (~2.3 mil millones de millones).