Generador de UUID (v4 y v7)
Genera identificadores únicos de 128 bits en las versiones 4 y 7 de la RFC 9562 y, en la pestaña Validar, descubre la versión, la variante y la hora incrustada en cualquier UUID.
Hasta 1000 elementos por vez. Todo se genera en tu navegador.
Cómo usar
- Elige la versión: v4 (totalmente aleatorio) o v7 (empieza con la hora actual en milisegundos).
- Ajusta el formato: mayúsculas y con guiones (36 caracteres) o sin guiones (32 dígitos hexadecimales).
- Haz clic en Generar y en Copiar; para claves de seed, define la Cantidad (hasta 1000) y usa Exportar CSV o Exportar JSON.
- En la pestaña Validar, pega uno o varios UUID (uno por línea) y haz clic en Validar; se aceptan mayúsculas, sin guiones, entre llaves o con el prefijo
urn:uuid:. - Cada línea muestra válido/inválido, el motivo, la versión y, en el v7, la fecha y hora en UTC.
Cómo funciona
Estructura de un UUID
Un UUID tiene 128 bits, escritos como 32 dígitos hexadecimales con el formato 8-4-4-4-12. La RFC 9562 fija dos campos: la versión es el 13.º dígito hexadecimal (el primero del 3.er grupo) y la variante ocupa los bits altos del 17.º dígito (el primero del 4.º grupo), que en los UUID de la RFC empiezan por 10; por eso ese dígito siempre es 8, 9, a o b.
- v4 (§5.4): 16 bytes de
crypto.getRandomValues; luego se fuerzan la versión 4 y la variante, y quedan 122 bits aleatorios. Una colisión es, en la práctica, imposible. - v7 (§5.7): los primeros 48 bits son el timestamp Unix en milisegundos (big-endian); el resto es aleatorio salvo la versión y la variante (74 bits aleatorios). Como el tiempo va primero, los v7 quedan en orden aproximadamente cronológico, lo que mejora la localidad en índices B-tree de bases como PostgreSQL y MySQL.
Ejemplo decodificado
Un UUID v7 generado el 13/11/2026 a las 12:00:00 UTC: 01a1d4c7-6600-7c7d-9cd1-d6744db01075.
- Los 12 primeros dígitos,
01a1d4c76600, equivalen a 1.794.571.200.000 en decimal: milisegundos desde 1970-01-01, es decir,2026-11-13T12:00:00.000Z. - 13.º dígito
7→ versión 7. - 17.º dígito
9= binario1001; los bits altos10indican la variante de la RFC 9562. - El resto (
c7dyd1d6744db01075, menos los 2 bits de la variante) es aleatorio.
Qué comprueba el validador
Tras quitar urn:uuid:, llaves y guiones, la entrada debe tener exactamente 32 dígitos hexadecimales. El UUID nulo (00000000-0000-0000-0000-000000000000, §5.9) y el máximo (ffffffff-ffff-ffff-ffff-ffffffffffff, §5.10) se reconocen como casos especiales. En los demás, la variante debe ser 10 (si no: error de variante, por ejemplo GUID antiguos de Microsoft) y la versión debe estar entre 1 y 8. Para v7, la marca de tiempo se muestra en ISO 8601 UTC.
Nota: esta implementación no usa contador monotónico; dos v7 creados en el mismo milisegundo se ordenan solo por su parte aleatoria.
Preguntas frecuentes
¿Debo usar UUID v4 o v7?
Usa v7 para claves primarias y todo lo que se indexe u ordene: la parte inicial crece con el tiempo y reduce la fragmentación de índices. Usa v4 cuando el identificador no deba revelar nada, ni siquiera el momento de su creación, como tokens públicos o IDs expuestos en URLs.
¿Un UUID v7 expone información?
Sí: la hora de creación con precisión de milisegundos, que cualquiera puede leer, incluso con la pestaña Validar de esta página. Normalmente no es un problema para claves internas, pero evita v7 en identificadores públicos si el momento de creación es sensible.
¿UUID y GUID son lo mismo?
En la práctica, sí: GUID es el nombre usado en el ecosistema Microsoft. La diferencia es que algunos GUID antiguos usan la variante reservada a Microsoft (17.º dígito c o d) y .NET guarda los primeros campos en orden de bytes little-endian. El validador rechaza la variante Microsoft con el motivo “variante”.
¿Puedo usar un UUID como contraseña o token secreto?
Un v4 tiene 122 bits aleatorios de un generador criptográfico, pero la RFC 9562 recomienda no suponer que los UUID sean difíciles de adivinar. Para secretos, usa tokens dedicados de 128 a 256 bits aleatorios. Y nunca uses v7 como secreto, ya que parte de él es la hora.
¿Cómo guardo UUID en la base de datos?
Usa el tipo nativo: uuid en PostgreSQL, BINARY(16) en MySQL o uniqueidentifier en SQL Server. Guardarlo como texto de 36 caracteres funciona, pero ocupa más del doble de espacio y vuelve más lentos los índices. PostgreSQL 18 ya incluye la función nativa uuidv7().
Fuentes
Herramientas relacionadas
Actualizado el 13/11/2026 · Rafael Lima