Generador UUID
Genera UUIDs v4 aleatorios — uno o muchos.
¿Qué es un UUID?
Un UUID (Universally Unique Identifier) es un número de 128 bits usado para identificar información de forma única en sistemas distribuidos sin requerir una autoridad central. Los UUIDs están estandarizados en el RFC 4122 y se usan en todas partes: desde claves primarias de bases de datos y rastreo de peticiones API hasta gestión de sesiones y nomenclatura de archivos.
El formato UUID estándar son 36 caracteres con cuatro guiones: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, donde M indica la versión (1-5) y N indica la variante. La versión más usada es UUID v4, que genera identificadores usando aleatoriedad criptográfica. Esta herramienta genera UUID v4 por defecto.
Formato UUID v4
UUID v4 usa 122 bits aleatorios (los 6 bits restantes codifican la versión y variante). El formato es xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx donde cada x es un dígito hex aleatorio e y es uno de 8, 9, A o B. El 4 en el tercer grupo lo identifica como versión 4. Cada UUID v4 se genera independientemente usando aleatoriedad criptográfica.
Cómo usar esta herramienta
Haz clic en el botón generar para crear un nuevo UUID v4. Cada clic produce un identificador fresco y criptográficamente aleatorio. Puedes generar varios UUIDs a la vez para operaciones por lotes. Haz clic en el botón copiar para copiar el UUID al portapapeles para usar en código, configuraciones o bases de datos.
Casos de uso comunes de UUID
- Claves primarias de base de datos: los UUIDs permiten a sistemas distribuidos crear registros independientemente sin colisiones de clave, a diferencia de los enteros autoincrementales que requieren coordinación.
- IDs de petición API: añade un UUID a cada petición API para trazabilidad de extremo a extremo entre microservicios.
- Tokens de sesión: crea identificadores únicos de sesión imposibles de adivinar.
- Nombres de archivo: genera nombres de archivo únicos para evitar colisiones cuando varios usuarios suben simultáneamente.
- Claves de idempotencia: usa UUIDs en APIs de pago para asegurar que la misma transacción no se procese dos veces.
Probabilidad de colisión
UUID v4 tiene 122 bits aleatorios, dando 5,3 × 10³⁶ valores posibles. La probabilidad de generar dos UUIDs idénticos es astronómicamente pequeña. Necesitarías generar 2,71 × 10¹⁸ UUIDs (2,71 trillones) antes de alcanzar una probabilidad del 50 % de una sola colisión. En términos prácticos, las colisiones no son una preocupación realista para ninguna aplicación.
UUID nil
El UUID nil (00000000-0000-0000-0000-000000000000) es un valor especial definido en el RFC 4122 como marcador de posición o por defecto. Algunas aplicaciones lo usan para representar "sin valor" o "desconocido" en columnas de base de datos tipo UUID, similar a cómo funciona null para otros tipos de datos.
Comparación de versiones de UUID
UUID v1 usa el timestamp actual y la dirección MAC del dispositivo: rápido pero potencialmente filtra información del dispositivo. UUID v3 y v5 generan UUIDs deterministas a partir de un namespace y nombre usando MD5 y SHA-1 respectivamente. UUID v4 usa pura aleatoriedad, ofreciendo la mejor combinación de unicidad, simplicidad y privacidad. UUID v7 (estándar borrador) combina un prefijo timestamp con aleatoriedad para UUIDs ordenables por tiempo.
¿Es seguro mi UUID?
Sí. La generación usa la API nativa crypto.randomUUID() del navegador, que proporciona aleatoriedad criptográficamente segura. Todo el procesamiento ocurre localmente en tu dispositivo. No se registran, almacenan ni transmiten UUIDs a ningún servidor.
Preguntas frecuentes
¿Debo usar UUIDs o IDs autoincrementales?
Los UUIDs son mejores para sistemas distribuidos, arquitecturas de microservicios y cualquier escenario donde se crean registros en varios servidores. Los IDs autoincrementales son más simples, más pequeños (4-8 bytes vs 16) y más eficientes para indexación de bases de datos. Elige según tu arquitectura: los sistemas centralizados pueden usar autoincremento, los distribuidos se benefician de UUIDs.
¿Los UUIDs deben almacenarse como cadenas en una base de datos?
No. La mayoría de las bases de datos soportan un tipo nativo UUID que almacena el valor como 16 bytes en lugar de los 36 bytes de la representación de cadena. PostgreSQL tiene un tipo de columna UUID, MySQL puede usar BINARY(16) y MongoDB usa su propio subtipo binario UUID. Usar tipos nativos ahorra espacio y mejora el rendimiento de consultas.