← Volver a las herramientas

Generador de UUID

Genera UUID v4 aleatorios o v7 ordenados por tiempo, de uno en uno o hasta 1000 en lote, en minúsculas, en mayúsculas o en formato GUID con llaves. Pega cualquier UUID en el validador para ver su versión y la marca de tiempo que lleva dentro. Todo funciona en tu navegador: no se sube nada y no hace falta registrarse.

122 bits aleatorios del generador seguro de tu navegador. La opción por defecto para identificadores que no deben revelar nada.

UUID aleatorio (versión 4)

Generando un UUID…

Generador de UUID en lote

Formato
Mayúsculas o minúsculas
Formato de salida
Comillas
Separador

Validador y decodificador de UUID

Pega un UUID o GUID para comprobarlo y ver su versión, su variante y, en v1, v6 y v7, el momento en que se creó.

Preguntas frecuentes

¿Los UUID son realmente únicos?+
No está garantizado, pero el riesgo es insignificante. Un UUID de versión 4 tiene 122 bits aleatorios, así que tendrías que generar unos 2,71 trillones (2,71 × 10^18) antes de que la probabilidad de un solo duplicado llegue al 50 %. Los duplicados reales casi siempre vienen de un generador aleatorio débil, de datos de prueba copiados o de un bug que reutiliza un valor, así que mantén igualmente una restricción de unicidad en la columna.
¿Puedo usar un UUID como token secreto o clave de API?+
Un UUID v4 de un generador criptográficamente seguro es impredecible, pero no sustituye a un secreto diseñado para ese fin. Solo tiene 122 bits aleatorios, parece un ID corriente y por eso acaba en logs y URL, y no tiene caducidad ni firma. Los UUID de versión 1 y versión 7 además revelan cuándo se crearon. Para tokens de sesión, enlaces de restablecimiento de contraseña y claves de API, usa el generador de tokens de tu framework con al menos 128 bits de aleatoriedad.
¿Uso UUID v4 o v7?+
Usa v7 para nuevas claves primarias y para todo lo que quieras ordenado por fecha de creación: como empieza por la marca de tiempo, las filas nuevas caen al final del índice, igual que con una clave autoincremental. Usa v4 cuando el ID no deba revelar nada, por ejemplo en ID públicos dentro de URL, porque v7 expone el momento de creación con precisión de milisegundos.
¿Los UUID van en mayúsculas o en minúsculas?+
El RFC 9562 admite mayúsculas, minúsculas o una mezcla, pero el anterior RFC 4122 y la ITU-T X.667 piden minúsculas en la salida y que la entrada acepte ambas, así que las minúsculas son la opción más segura. Las herramientas de Windows suelen mostrar los GUID en mayúsculas y entre llaves, por eso este generador ofrece ambas opciones. Si comparas UUID como cadenas de texto, normaliza antes las mayúsculas o guárdalos en un tipo de columna específico para UUID.
¿Qué diferencia hay entre un GUID y un UUID?+
GUID (identificador global único) es el nombre que usa Microsoft para los UUID. El formato de texto es el mismo, con 36 caracteres, y Guid.NewGuid() de .NET genera un UUID estándar de versión 4. Las diferencias visibles son convenciones: los GUID se suelen escribir en mayúsculas y entre llaves, y Windows guarda los tres primeros grupos en orden little-endian cuando escribe los 16 bytes en bruto.
¿Se sube o se registra algo de lo que genero o pego?+
No. Los UUID se crean en tu navegador con la Web Crypto API (crypto.randomUUID y crypto.getRandomValues), y el validador decodifica localmente lo que pegas. Ni los valores generados ni los UUID que compruebas se envían a ningún servidor.

Más información

¿Escribes pruebas, especificaciones o documentación técnica? Estas guías combinan bien con un generador de UUID:

¿Qué es un UUID (o GUID)?

Un UUID (identificador único universal) es un valor de 128 bits que cualquier sistema puede crear por su cuenta, sin pedirle a un servidor central el siguiente número, con la confianza de que nadie más va a crear el mismo. Se escribe como 32 dígitos hexadecimales en cinco grupos, 8-4-4-4-12, con 36 caracteres en total:

017f22e2-79b0-7cc3-98c4-dc0c0c07398f

El primer dígito del tercer grupo es la versión (aquí, 7) y el primer dígito del cuarto grupo contiene la variante, que en los UUID estándar es 8, 9, a o b. Por eso un UUID v4 siempre encaja en el patrón xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.

El estándar actual es el RFC 9562, publicado en mayo de 2024. Sustituye al RFC 4122, mantiene las versiones 1 a 5 tal como estaban y añade las versiones 6, 7 y 8, además del UUID max (todos los bits a uno).

UUID frente a GUID: GUID es el nombre que usa Microsoft para lo mismo. Las herramientas de Windows, como el registro, suelen mostrar los GUID en mayúsculas y entre llaves, como {3F2504E0-4F89-41D3-9A0C-0305E82C3301}, pero el valor es un UUID normal. (Guid.ToString() de .NET los muestra por defecto en minúsculas y sin llaves.) La única diferencia práctica aparece en binario: Windows guarda los tres primeros grupos en little-endian, así que un GUID de 16 bytes en bruto puede parecer desordenado cuando lo lee otro sistema.

Comparativa de versiones de UUID

La versión indica cómo se construyeron los 128 bits. Estas seis versiones cubren casi todos los usos reales:

VersiónSe construye conOrdenable por tiempoIdeal para
v1Marca de tiempo (intervalos de 100 ns desde 1582), secuencia de reloj, ID de nodo (dirección MAC o aleatorio)No, los bits bajos del tiempo van primeroSistemas heredados que ya lo usan
v3 / v5Hash MD5 (v3) o SHA-1 (v5) de un espacio de nombres más un nombreNoCuando la misma entrada debe dar siempre el mismo ID
v4122 bits aleatoriosNoIdentificadores opacos que no revelan nada
v6Los campos de v1 reordenados, con los bits más significativos del tiempo primeroSíPasar un sistema v1 a ID ordenables
v7Marca de tiempo Unix de 48 bits en milisegundos más bits aleatoriosSíClaves primarias, eventos, logs

Cuál elegir: v7 para nuevas claves de base de datos y v4 para identificadores aleatorios opacos. Las claves v4 caen en posiciones al azar de un índice B-tree, lo que provoca divisiones de páginas y un mal uso de la caché a medida que crece la tabla. Una clave v7 empieza por el tiempo, así que las filas nuevas se añaden cerca del final del índice y quedan junto a sus vecinas. La contrapartida es que cualquiera que tenga un UUID v7 puede saber cuándo se creó.

La versión 2 (DCE Security) casi no se usa, y la versión 8 es un formato libre para esquemas propios de cada fabricante. Un aviso sobre bases de datos: SQL Server ordena los valores uniqueidentifier empezando por el último grupo, así que ahí v7 no mejora la localidad del índice sin trabajo adicional.

¿Qué probabilidad hay de una colisión de UUID?

Seis de los 128 bits de un UUID v4 los fijan la versión y la variante, lo que deja 122 bits aleatorios, unos 5,3 × 10^36 valores posibles. La paradoja del cumpleaños pone las cifras en perspectiva:

  • Necesitas unos 2,71 trillones (2,71 × 10^18) de UUID v4 para tener un 50 % de probabilidad de que dos coincidan.
  • Generando mil millones de UUID por segundo, tardarías unos 86 años en llegar ahí.
  • Después de 103 billones de UUID, la probabilidad de un solo duplicado sigue siendo de aproximadamente una entre mil millones.

Las cuentas solo salen si los bits son realmente aleatorios. En la práctica, los duplicados vienen de generadores débiles, como fragmentos de código basados en Math.random, de bugs que reutilizan un valor y de datos de prueba copiados entre entornos. Esta página usa crypto.randomUUID() y crypto.getRandomValues(), la fuente criptográficamente segura del navegador. Para v7 sigue el método de contador del RFC 9562, de modo que los UUID generados en el mismo milisegundo siguen siendo únicos y salen en orden.

Cómo generar un UUID en código

La mayoría de lenguajes y bases de datos incluyen una función de UUID, así que para v4 rara vez necesitas una librería. El soporte integrado de v7 es más reciente, así que revisa tu versión.

JavaScript (navegadores y Node.js)

crypto.randomUUID();                      // v4, solo en contextos seguros (HTTPS)
import { randomUUID } from "node:crypto";  // Node.js

Python

import uuid
uuid.uuid4()   # v4
uuid.uuid7()   # v7, Python 3.14+

PostgreSQL y MySQL

SELECT gen_random_uuid();  -- PostgreSQL 13+, v4
SELECT uuidv7();           -- PostgreSQL 18+, v7
SELECT UUID();             -- MySQL, devuelve un UUID de versión 1

C# (.NET) y Java

Guid.NewGuid();          // C#, v4
Guid.CreateVersion7();   // C#, v7, .NET 9+
UUID.randomUUID();       // Java, v4

Terminal (macOS y Linux)

uuidgen                          # v4 aleatorio; macOS lo muestra en mayúsculas
uuidgen | tr '[:upper:]' '[:lower:]'

En MySQL, UUID_TO_BIN(UUID(), 1) guarda el valor en 16 bytes e intercambia los campos de tiempo para que los valores v1 indexados queden más agrupados. Para v7 en JavaScript, el paquete uuid de npm exporta una función v7().

UUID como datos de prueba en QA

Los UUID resuelven muchos problemas de testing porque son únicos sin que las ejecuciones de prueba tengan que coordinarse entre sí:

  • Datos de prueba únicos: añade un UUID a nombres de usuario, correos o referencias de pedido (por ejemplo qa+<uuid>@example.com) para que los jobs de CI en paralelo nunca choquen con la misma restricción de unicidad.
  • Claves de idempotencia: envía el mismo UUID en una cabecera Idempotency-Key al repetir un POST y comprueba que el pago o el pedido se crea una sola vez.
  • ID de correlación: pon un UUID en una cabecera de la petición como X-Request-ID y búscalo en los logs de todos los servicios. Pega ese ID en el informe de bug para que el equipo de desarrollo encuentre la petición exacta.
  • Carga y limpieza de datos: genera 100 ID como array JSON para tus archivos de fixtures, o como lista SQL IN (…) para consultar o borrar exactamente las filas que creó una prueba.
  • Casos límite del validador: pásale a tu API el UUID nil, el UUID max, valores en mayúsculas, llaves, guiones ausentes y un v1 donde se espera un v4, y confirma que acepta o rechaza cada uno a propósito.

Cuando una prueba falla con un registro concreto, pega su ID en el validador de arriba. Un ID v7 o v1 te dice cuándo se creó el registro, lo que a menudo acota el despliegue o la ejecución de pruebas que lo generó.

Herramientas relacionadas