UUID v4 o v7: qué son y cuándo usar cada uno

Un UUID es un identificador de 128 bits que se puede generar en cualquier sitio sin pedir permiso, con una probabilidad despreciable de que se repita. Por eso es la clave por defecto de los sistemas distribuidos. Cómo se construye, cuándo usar la v4 y cuándo la v7, y lo único que un UUID no es: un secreto.

Revisado el 3 de octubre de 2026 · 4 min de lectura

Qué aspecto tiene un UUID

Un UUID (identificador único universal) es un valor de 128 bits, escrito como 32 dígitos hexadecimales en cinco grupos separados por guiones: cf217f18-8cc6-4677-aa1e-5b7bc89ae6eb, 36 caracteres en total. Dos pequeños campos dentro de él indican de qué tipo es: una versión (la primera cifra del tercer grupo; aquí es 4) y una variante (la primera cifra del cuarto grupo). El estándar que los define es el RFC 9562, publicado en 2024, que deja obsoleto el antiguo RFC 4122.

Versión 4: aleatoria

El UUIDv4 está pensado para generar UUID a partir de números realmente aleatorios o pseudoaleatorios. De los 128 bits, 6 los fijan la versión y la variante, así que quedan 122 bits aleatorios. Es la versión a la que casi todo el mundo se refiere con «un UUID»: sin marca de tiempo, sin datos de la máquina, solo azar. Puedes crear uno en tu navegador con el generador de UUID, que produce los que necesites y funciona en local.

Versión 7: ordenada por tiempo

El UUIDv7, novedad del RFC 9562, coloca una marca de tiempo Unix en milisegundos (los milisegundos desde la medianoche del 1 de enero de 1970 UTC, sin segundos intercalares) en los 48 bits más significativos y rellena el resto con bits aleatorios. Como la marca de tiempo va primero, los UUID creados más tarde se ordenan después de los anteriores.

Eso importa en las bases de datos. El RFC 9562 explica que las versiones de UUID que no están ordenadas por tiempo, como la v4, tienen mala localidad en los índices de base de datos: los valores creados seguidos no quedan cerca unos de otros en el índice, así que las inserciones se hacen en posiciones aleatorias, con el coste de rendimiento que eso implica en las estructuras habituales. Una clave v7, en cambio, se añade cerca del final del índice. Si el UUID va a ser la clave primaria de una tabla grande, normalmente conviene la v7; si el identificador nunca se usa para ordenar ni como clave, la v4 sirve.

CaracterísticaUUIDv4UUIDv7
Contenido122 bits aleatoriosMarca de tiempo de 48 bits en milisegundos y después bits aleatorios
Se ordena por fecha de creaciónNoSí (al milisegundo)
Localidad en el índice de la base de datosMalaBuena
Revela cuándo se creóNoSí, a cualquiera que lo lea
Mejor paraIdentificadores opacos, cualquier cosa que no deba revelar el ordenClaves primarias, registros, todo lo que quieras ordenar

La marca de tiempo de una v7 es un arma de doble filo: te da orden, pero también muestra cuándo se creó el registro. El RFC 9562 señala que la marca de tiempo incrustada supone una superficie de ataque muy pequeña, porque indica el orden de creación. Si la fecha de creación es sensible, mejor la v4.

¿Qué probabilidad hay de una colisión?

Con 122 bits aleatorios hay unos 5,3 × 1036 valores v4 posibles. La probabilidad de que dos de n UUID aleatorios coincidan es aproximadamente n² ÷ (2 × 5,3 × 1036). Poniendo números:

  • Mil millones de UUID: una probabilidad de alrededor de 10-19, una entre diez trillones.
  • Un billón de UUID: alrededor de 10-13.
  • Para llegar siquiera a una probabilidad entre mil millones de un solo duplicado habría que generar unos 103 billones.
  • Para un 50 % de probabilidad hacen falta unos 2,7 trillones (2,7 × 1018).

Para cualquier aplicación real, la probabilidad de que dos UUID v4 honestos coincidan es muy inferior a la de un fallo de hardware. La salvedad es «honestos»: se supone una buena fuente de aleatoriedad. El RFC 9562 advierte de que descubrir que una fuente de números aleatorios es predecible produce una vulnerabilidad, y por eso los UUID deben salir de un generador criptográficamente seguro, no de algo como Math.random().

Lo que un UUID no es

Aquí es donde la gente se equivoca. Un UUID es un identificador, no un secreto. El RFC 9562 dice que las implementaciones no deben suponer que los UUID son difíciles de adivinar y que no deben usarse como capacidades de seguridad, es decir, identificadores cuya mera posesión da acceso. Así que no uses un UUID como enlace de restablecimiento de contraseña, clave de API, enlace compartido que deba seguir siendo privado ni token de sesión. Para eso, usa un valor aleatorio largo de un generador seguro (en cómo crear contraseñas seguras se explica qué es «suficientemente largo») y trátalo como un secreto. Un UUID en una URL está bien como ID; que «cualquiera con esta URL pueda verlo» es otra decisión de diseño, y un UUID por sí solo no lo hace seguro.

Evita también las versiones antiguas basadas en la hora y la dirección MAC para trabajo nuevo: el RFC 9562 dice que las direcciones MAC suponen riesgos inherentes para la privacidad y no deberían usarse en un UUID.

Consejos prácticos

  • Guárdalos de forma compacta. Un UUID son 16 bytes; muchas bases de datos tienen un tipo UUID nativo más pequeño y rápido que una cadena de 36 caracteres.
  • Compáralos en un solo formato. El estándar no distingue mayúsculas de minúsculas en el texto, pero mezclarlas al comparar causa errores; normaliza a minúsculas.
  • No saques significado de ellos salvo que conozcas la versión. Solo las versiones basadas en tiempo (v1, v6 y v7) llevan una marca de tiempo.
  • No los acortes. Cortar un UUID a sus 8 primeros caracteres destruye la garantía de unicidad.

Fuentes y más información

Datos comprobados el 3 de octubre de 2026.

Hazlo ahora, gratis y en tu navegador. Tus archivos no se suben.

Genera UUID (v4 y v7) en cantidad y en el formato que necesites.

Preguntas frecuentes

¿Qué es un UUID?
Un identificador de 128 bits, escrito como 32 dígitos hexadecimales en grupos de 8-4-4-4-12, que se puede generar en cualquier sitio sin coordinación y que es extremadamente improbable que se repita.
¿Qué diferencia hay entre UUID v4 y v7?
La v4 son 122 bits aleatorios sin orden. La v7 empieza con una marca de tiempo Unix de 48 bits en milisegundos, así que los valores se ordenan por fecha de creación y se indexan mucho mejor en una base de datos, pero revelan cuándo se crearon.
¿Pueden coincidir dos UUID?
En teoría sí, en la práctica no: habría que generar unos 103 billones de UUID v4 para tener una probabilidad entre mil millones de un solo duplicado, suponiendo una buena fuente de aleatoriedad.
¿Es un UUID secreto o difícil de adivinar?
No. El RFC 9562 dice que no se debe suponer que los UUID son difíciles de adivinar ni usarlos como capacidades de seguridad. Para secretos, usa un token aleatorio largo de un generador seguro.
¿Debo usar un UUID como clave primaria de una base de datos?
Es habitual en sistemas distribuidos. En tablas grandes conviene la v7, porque su orden temporal da mejor localidad en el índice que la v4 aleatoria.
¿Es seguro generar UUID en el navegador?
Sí, si el generador usa una fuente aleatoria criptográficamente segura. El generador de UUID de UtilsDock funciona en local en tu navegador y no envía nada a ningún sitio.