Saltar al contenido principal
FreeOnlineTools Go
Español
Comparación

UUID v1 vs v4 vs v5: ¿Qué versión debería usar?

Por FreeOnlineTools Team · Actualizado 2026-08-28

Respuesta rápida

Utilice UUID v4 (aleatorio) de forma predeterminada: no necesita coordinación y tiene un riesgo de colisión insignificante. Utilice la versión 1 (basada en el tiempo) solo cuando necesite ID que se puedan ordenar por tiempo y pueda proteger el ID del nodo. Utilice v5 (espacio de nombres+nombre) cuando necesite ID deterministas derivados de un nombre. Genere cualquier versión con nuestro UUID Generator gratuito.

Introducción

Un UUID (Identificador único universal) es un identificador de 128 bits representado como 36 caracteres en 8-4-4-4-12 grupos hexadecimales, p. 123e4567-e89b-12d3-a456-426614174000. RFC 9562 define varias versiones; los tres que encontrará con más frecuencia son v1 (hora + MAC), v4 (aleatorio) y v5 (espacio de nombres + nombre, SHA-1). Cada uno hace diferentes compensaciones entre garantías de unicidad, ordenabilidad y determinismo.

Paso a paso

  1. UUID v1: basado en tiempo y nodos

    v1 codifica la marca de tiempo actual de 60 bits (intervalos de 100 ns desde 1582-10-15) y una ID de nodo de 48 bits (generalmente la dirección MAC). Los ID generados en el mismo nodo aumentan monótonamente y se pueden ordenar en el tiempo. Riesgo: la dirección MAC filtra la identidad del hardware y el desfase del reloj entre los nodos puede alterar el orden.

  2. UUID v4 —aleatorio

    v4 utiliza 122 bits aleatorios (6 bits son fijos para la versión/variante). Con 122 bits aleatorios, la probabilidad de una colisión entre 2,71 billones de identificaciones es del 50%; para cualquier carga de trabajo realista, la posibilidad es efectivamente cero. v4 no necesita coordinación y no revela información del host, lo que lo convierte en el valor predeterminado más seguro.

  3. UUID v5: espacio de nombres y nombre (SHA-1)

    v5 aplica un hash a un espacio de nombres UUID y una cadena de nombre con SHA-1 para producir una identificación determinista de 128 bits. El mismo par (espacio de nombres, nombre) siempre produce el mismo UUID, que es ideal para deduplicación e ID estables derivados de claves naturales. v3 es la misma idea pero usa MD5 (evítelo).

  4. Compara las compensaciones

    v1 se puede ordenar pero pierde MAC y necesita sincronización de reloj. v4 es aleatorio y privado pero no se puede ordenar. v5 es determinista y deduplica, pero no es aleatorio: adivinar el nombre permite a un atacante reproducir el UUID. Elija en función de si necesita orden, aleatoriedad o determinismo.

  5. Elija la versión adecuada para su caso

    Claves primarias de la base de datos: v4 (o v7 en sistemas más nuevos para ordenar en el tiempo). Sistemas distribuidos sin coordinación: v4. ID deterministas de una clave natural (por ejemplo, URL →UUID): v5. Registros de auditoría que se benefician del orden temporal: v1 con una ID de nodo aleatoria segura.

Ejemplos

UUID v1 (basado en tiempo, ordenable)

Aporte: Generado el 2026-08-28T12:00:00Z en el nodo 00:11:22:33:44:55

Producción: 1ef7c1d0-2d3b-11f0-8000-001122334455 (dígito de versión '1', ordenable por tiempo)

UUID v4 (aleatorio)

Aporte: Random generation

Producción: f47ac10b-58cc-4372-a567-0e02b2c3d479 (dígito de versión '4', bits aleatorios)

UUID v5 (determinista de espacio de nombres+nombre)

Aporte: Espacio de nombres DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8) + nombre 'freeonlinetoolsgo.com'

Producción: 74738ff5-5367-5958-9aeb-0c1f1f1f1f1f (la misma entrada siempre produce la misma salida)

Problemas comunes

  • Almacenar UUID como VARCHAR(36) en lugar de un tipo BINARY/UUID nativo de 16 bytes: esto desperdicia el doble de almacenamiento y altera el rendimiento del índice. Utilice un tipo de columna nativa UUID cuando esté disponible.
  • Usar v1 sin proteger la ID del nodo: la dirección MAC predeterminada filtra la identidad del hardware y es un problema de privacidad. Reemplácelo con un valor criptográficamente aleatorio de 48 bits por nodo.
  • Suponiendo que las colisiones v4 sean imposibles: no lo son; simplemente son astronómicamente improbables. Con 122 bits aleatorios, se necesitan ~2,71 billones de identificaciones para tener una probabilidad del 50%. Para mil millones de identificaciones, la probabilidad es ~0,0000000000000001.
  • Usando v3 (basado en MD5) en lugar de v5 (basado en SHA-1): MD5 no funciona, por lo que se prefiere v5. Ambos son deterministas, pero la v5 tiene una mayor resistencia a las colisiones.

Consejos

  • La versión v4 está predeterminada para casi todos los casos de uso: es aleatoria, privada y a prueba de colisiones sin ninguna coordinación.
  • Si necesita ID aleatorios que se puedan ordenar por tiempo, consulte UUID v7 (RFC 9562, 2024), que combina una marca de tiempo Unix con bits aleatorios, mejor que v1 para bases de datos modernas.
  • Utilice v5 para generar ID estables a partir de claves naturales (URLs, direcciones de correo electrónico) de modo que la misma entrada siempre se asigne al mismo UUID, útil para deduplicación e idempotente APIs.
  • Genere UUID en el cliente cuando sea posible para evitar un viaje de ida y vuelta al servidor: nuestro generador UUID se ejecuta completamente en su navegador usando crypto.getRandomValues().

Herramientas relacionadas

Guías relacionadas

Referencias