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…
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ó.
¿Escribes pruebas, especificaciones o documentación técnica? Estas guías combinan bien con un generador de UUID:
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.
La versión indica cómo se construyeron los 128 bits. Estas seis versiones cubren casi todos los usos reales:
| Versión | Se construye con | Ordenable por tiempo | Ideal para |
|---|---|---|---|
| v1 | Marca 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 primero | Sistemas heredados que ya lo usan |
| v3 / v5 | Hash MD5 (v3) o SHA-1 (v5) de un espacio de nombres más un nombre | No | Cuando la misma entrada debe dar siempre el mismo ID |
| v4 | 122 bits aleatorios | No | Identificadores opacos que no revelan nada |
| v6 | Los campos de v1 reordenados, con los bits más significativos del tiempo primero | Sí | Pasar un sistema v1 a ID ordenables |
| v7 | Marca de tiempo Unix de 48 bits en milisegundos más bits aleatorios | Sí | 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.
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:
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.
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.
crypto.randomUUID(); // v4, solo en contextos seguros (HTTPS)
import { randomUUID } from "node:crypto"; // Node.jsimport uuid
uuid.uuid4() # v4
uuid.uuid7() # v7, Python 3.14+SELECT gen_random_uuid(); -- PostgreSQL 13+, v4
SELECT uuidv7(); -- PostgreSQL 18+, v7
SELECT UUID(); -- MySQL, devuelve un UUID de versión 1Guid.NewGuid(); // C#, v4
Guid.CreateVersion7(); // C#, v7, .NET 9+
UUID.randomUUID(); // Java, v4uuidgen # 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().
Los UUID resuelven muchos problemas de testing porque son únicos sin que las ejecuciones de prueba tengan que coordinarse entre sí:
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ó.