Cómo usar el generador de UUID
- Elige la versión: v4 (aleatoria) o v7 (ordenada por tiempo).
- Indica cuántos UUID necesitas, desde uno hasta una lista masiva.
- Si quieres, cambia a mayúsculas o quita los guiones.
- Copia un solo valor o la lista completa.
Los UUID se generan en tu navegador con su generador de números aleatorios criptográficamente seguro. Nunca se envían a nuestros servidores ni se guardan en ellos, así que nadie más sabe qué identificadores has creado.
¿Qué es un UUID?
Un UUID (Universally Unique Identifier, identificador único universal) es un valor de 128 bits que se puede generar de forma independiente en cualquier máquina con una probabilidad insignificante de coincidir con otro. No hace falta ningún registro central ni consultar una base de datos, por eso los UUID son ideales para sistemas distribuidos, clientes sin conexión y para combinar datos de varias fuentes. También son una opción habitual para los ID de petición y para el claim jti de los tokens, que puedes inspeccionar con el decodificador de JWT. GUID (Globally Unique Identifier) es el nombre que da Microsoft a lo mismo.
Los UUID se escriben como 32 dígitos hexadecimales en cinco grupos separados por guiones, con el patrón 8-4-4-4-12 (36 caracteres en total):
f47ac10b-58cc-4372-a567-0e02b2c3d479
^ ^
| variante (8, 9, a o b)
versión (4)
El primer dígito del tercer grupo es la versión; el primer dígito del cuarto grupo codifica la variante. La especificación actual es la RFC 9562 (2024), que sustituyó a la RFC 4122 y añadió las versiones 6, 7 y 8.
Versión 4 frente a versión 7
| UUID v4 | UUID v7 | |
|---|---|---|
| Contenido | 122 bits aleatorios (6 bits fijos para la versión y la variante) | Marca de tiempo Unix de 48 bits en milisegundos, seguida de bits aleatorios |
| Orden | Aleatorio | Aproximadamente cronológico |
| Revela | Nada | Su momento de creación |
| Ideal para | Tokens, ID públicos, uso general | Claves primarias de bases de datos, registros de eventos |
Por qué v7 es mejor para los índices de bases de datos
Las claves primarias suelen guardarse en un índice B-tree. Los valores v4 aleatorios caen en posiciones aleatorias, así que cada inserción toca una página distinta, lo que provoca divisiones de páginas, mala localidad de caché e índices inflados en tablas grandes. Como los UUID v7 empiezan con una marca de tiempo, los valores nuevos se añaden cerca del final del índice, de forma parecida a un entero autoincremental, sin perder las ventajas de los ID globalmente únicos generados en el cliente.
Errores habituales
- Guardar los UUID como texto. Una cadena de 36 caracteres ocupa más del doble que los 16 bytes en bruto. Usa un tipo
uuidnativo (PostgreSQL) oBINARY(16)(MySQL). - Usar los UUID como secretos. Los valores v4 son difíciles de adivinar, pero son identificadores, no credenciales. Los valores v7 revelan su momento de creación y son parcialmente predecibles. Usa un token aleatorio específico para restablecer contraseñas y para las claves de API.
- Comparaciones que distinguen mayúsculas y minúsculas. La RFC 9562 especifica la salida en minúsculas, pero exige aceptar la entrada en cualquiera de las dos. Normaliza las cadenas antes de compararlas.
- Fuentes aleatorias débiles. Generar UUID v4 con
Math.random()pone en riesgo su unicidad. Usa un generador criptográficamente seguro.
Cómo generar UUID en código
// JavaScript (navegadores y Node.js)
crypto.randomUUID(); // v4
# Python
import uuid
uuid.uuid4()
uuid.uuid7() # Python 3.14+
-- PostgreSQL
SELECT gen_random_uuid(); -- v4 (PostgreSQL 13+)
SELECT uuidv7(); -- PostgreSQL 18+
// Java
java.util.UUID.randomUUID();
// C# / .NET
Guid.NewGuid(); // v4
Guid.CreateVersion7(); // .NET 9+
# Shell (Linux, macOS)
uuidgen
Preguntas frecuentes
¿Pueden coincidir dos UUID?
En teoría, sí; en la práctica, no. Con 122 bits aleatorios, el número de valores v4 posibles es tan grande que tendrías que generar miles de millones de UUID por segundo durante muchas décadas para que un solo duplicado empezara a ser probable. En los sistemas reales, las colisiones casi siempre se deben a un generador de números aleatorios defectuoso o a datos copiados, no al azar.
¿Qué diferencia hay entre un UUID y un GUID?
Ninguna en la práctica. GUID es el término que se usa en las tecnologías de Microsoft; el formato y el tamaño son los mismos.
¿Debo usar v4 o v7?
Usa v7 para claves primarias de bases de datos y para todo lo que quieras ordenar por momento de creación. Usa v4 cuando el ID no deba revelar nada, como los identificadores que aparecen en URL públicas.
¿Es válido el UUID nil?
Sí. 00000000-0000-0000-0000-000000000000 es el UUID nil especial, y la RFC 9562 también define un UUID max con todos los dígitos f. Ambos se usan a menudo como marcadores de posición.
Actualizado