Generador UUID
Genera identificadores UUID v4 aleatorios al instante para claves de base de datos y sistemas distribuidos
¿Qué es un UUID?
Un UUID (Universally Unique Identifier) es un identificador de 128 bits diseñado para ser único
globalmente sin necesidad de coordinación central. Los UUIDs se representan como 32 dígitos hexadecimales
agrupados en 5 bloques separados por guiones: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, donde
M indica la versión y N la variante. Los UUID v4, generados por esta herramienta, utilizan 122 bits
de datos aleatorios criptográficos, produciendo una probabilidad de colisión tan baja que en la práctica
pueden considerarse únicos sin verificación contra bases de datos existentes.
UUID v4: Generación Aleatoria
UUID versión 4 es la versión más utilizada en desarrollo de software moderno. Su generación es simple: se toman 128 bits aleatorios, se establecen 6 bits fijos (4 bits de versión "0100" y 2 bits de variante "10"), dejando 122 bits de entropía pura. Esto significa que existen 2^122 (≈5.3 × 10^36) UUIDs v4 posibles — un espacio tan vasto que generando mil millones de UUIDs por segundo tardarías más de 100 años en tener un 50% de probabilidad de una sola colisión.
Esta herramienta usa crypto.getRandomValues() del navegador, que proporciona
aleatoriedad criptográficamente segura desde el generador de números aleatorios del sistema operativo.
Esto garantiza que los UUIDs generados son impredecibles y adecuados para identificadores de
sesión, tokens de API, y claves primarias de bases de datos.
Casos de Uso para UUIDs
- Claves primarias de bases de datos: UUIDs permiten generar IDs en el cliente antes de insertar en la base de datos, eliminando la necesidad de secuencias centralizadas y facilitando la replicación.
- Sistemas distribuidos: Cada nodo puede generar identificadores independientemente sin coordinación, ideal para microservicios, event sourcing y arquitecturas CQRS.
- IDs de sesión y tokens: La naturaleza impredecible de UUID v4 los hace adecuados para session tokens y correlation IDs en logs distribuidos.
- URLs y slugs de recursos: UUIDs en URLs (
/api/users/550e8400-e29b-41d4-a716-446655440000) evitan la enumeración secuencial de recursos. - Idempotencia en APIs: Enviar un UUID como clave de idempotencia permite reintentar peticiones sin duplicar operaciones en el servidor.
UUID v4 vs Otras Versiones
Aunque UUID v4 es la versión más popular por su simplicidad, existen alternativas para casos específicos:
- UUID v1: Basado en timestamp y dirección MAC. Provee ordenación temporal pero expone información del host. Raramente usado en APIs públicas.
- UUID v7 (RFC 9562): Combina timestamp Unix en milisegundos con aleatoriedad. Ofrece las ventajas de UUID v4 (no expone info) más ordenación cronológica para mejor rendimiento en índices B-tree de bases de datos.
- ULID: Alternativa compatible en tamaño (128 bits) con codificación Crockford Base32, monotónica dentro del mismo milisegundo.
- NanoID: Identificadores más cortos con alfabeto personalizable, ideales cuando el espacio de almacenamiento importa.
Para la mayoría de aplicaciones donde no necesitas ordenación temporal, UUID v4 es la elección correcta por su amplio soporte en librerías, bases de datos y frameworks.
Code Examples
Generar UUID v4 con crypto.randomUUID()
// Modern approach (supported in all major browsers)
const uuid = crypto.randomUUID();
console.log(uuid); // "550e8400-e29b-41d4-a716-446655440000"
// Manual approach using crypto.getRandomValues()
function generateUUIDv4() {
const bytes = crypto.getRandomValues(new Uint8Array(16));
bytes[6] = (bytes[6] & 0x0f) | 0x40; // Version 4
bytes[8] = (bytes[8] & 0x3f) | 0x80; // Variant 10
const hex = [...bytes].map(b => b.toString(16).padStart(2, '0')).join('');
return `${hex.slice(0,8)}-${hex.slice(8,12)}-${hex.slice(12,16)}-${hex.slice(16,20)}-${hex.slice(20)}`;
}Standards & Specifications
- RFC 9562 — Especificación actual de UUIDs (reemplaza RFC 4122) con versiones v6, v7 y v8
Preguntas Frecuentes
¿Son los UUID v4 verdaderamente únicos?
Para todos los propósitos prácticos, sí. UUID v4 tiene 122 bits de aleatoriedad con 5.3×10^36 valores posibles.
¿Puedo usar UUIDs como claves primarias?
Sí. Los UUIDs permiten generación de IDs en el cliente sin coordinación. Considera UUID v7 para mejor rendimiento en índices.
¿Cuál es la diferencia entre UUID y GUID?
Son lo mismo. UUID es el término oficial del RFC 9562. GUID es el término de Microsoft para el mismo formato.
¿Es segura la generación?
Sí. Usa crypto.getRandomValues() que proporciona aleatoriedad criptográficamente segura del sistema operativo.