Herramientas
Guías

Generador de UUID

Dev

Genera UUID aleatorios criptográficos (RFC 4122 v4) con crypto.randomUUID.

100 % del lado del cliente Sin backend
En esta página

¿Qué es un UUID?#

Un UUID (Identificador Único Universal, llamado también GUID en los sistemas de Microsoft) es un identificador de 128 bits representado como 32 dígitos hex agrupados en 8-4-4-4-12, por ejemplo c9bf1d4d-7d4f-4b3a-8b2c-1e5f6a7b8c9d. La idea es simple pero potente: generar identificadores a demanda, sin autoridad central y sin coordinación entre máquinas, y aun así que la probabilidad de que dos colisionen sea prácticamente cero. Esa propiedad es lo que convierte a los UUID en la estrategia por defecto de clave primaria para bases de datos distribuidas, en el campo id de casi todo recurso de una API JSON, en los correlation IDs que enlazan líneas de log entre microservicios y en los nombres de archivo de los blobs subidos.

Esta página genera UUIDs RFC 4122 versión 4, la variante construida a partir de bits aleatorios. La versión 4 es la que querrás en casi todos los casos modernos: no lleva la dirección MAC de la máquina (a diferencia de la v1), no incrusta jerarquía de espacio de nombres (a diferencia de v3/v5) y se apoya únicamente en aleatoriedad criptográfica para la unicidad. Puedes generar un único UUID o un lote de hasta 10.000 a la vez, en minúsculas o mayúsculas, completamente en tu navegador.

Dos de los 32 dígitos hex no son realmente aleatorios: declaran el propio tipo del UUID. El nibble de versión en la posición 14 (el primer carácter del tercer grupo) es siempre 4, y el nibble de variante en la posición 19 (el primer carácter del cuarto grupo) es siempre 8, 9, a o b. Por eso todos los valores que veas en esta página se leen como xxxxxxxx-xxxx-4xxx-[89ab]xxx-xxxxxxxxxxxx. Esas dos posiciones fijas sirven además como huella autodescriptiva: cualquier cadena que encaje en esta forma es un UUID v4, y una regex rápida puede validar millones de ellos.

Cómo se usa#

  1. Ajusta el campo numérico Cantidad de la parte superior a cuántos UUIDs quieres: entre 1 y 10.000. El campo se acota a ese rango.
  2. Marca Mayúsculas si necesitas toda la salida en mayúsculas (algunos sistemas heredados y las convenciones de GUID de Microsoft prefieren C9BF1D4D-…). Déjalo sin marcar para el valor por defecto en minúsculas que usan la mayoría de las pilas modernas.
  3. Pulsa Generar. Los valores aparecen en el área de salida monoespaciada, uno por línea.
  4. Pulsa Copiar para copiar el lote completo al portapapeles, listo para pegarlo en un INSERT SQL, un CSV, un fixture de prueba o un script de siembra.
  5. Pulsa Generar de nuevo cuando necesites un lote nuevo: cada pulsación obtiene bits aleatorios nuevos y produce valores que no habían existido nunca.

Características clave#

  • Aleatoriedad criptográfica real. Usa crypto.randomUUID() del navegador en contextos seguros, con un repliegue a crypto.getRandomValues que aplica muestreo por rechazo sobre los bits de versión y variante, no Math.random(), que no sirve para identificadores.
  • Generación por lotes. Hasta 10.000 UUIDs con un clic, uno por línea, para sembrar una base de datos o un archivo de fixtures sin tener que scriptarlo tú.
  • Minúsculas o mayúsculas. Un único conmutador cubre ambas convenciones.
  • Conforme a RFC 4122 v4. El nibble de versión es siempre 4 y el de variante siempre 8/9/a/b, así que todo el valor valida contra la regex v4 estándar.
  • 100 % del lado del cliente. Sin backend, sin telemetría. Los UUIDs que generes aquí no se registran en ningún sitio: son tuyos desde el momento en que aparecen.

Ejemplo práctico#

Pulsa Generar dejando la Cantidad en su valor por defecto de 5 y Mayúsculas sin marcar, y obtienes cinco líneas como estas (tus valores reales diferirán: son aleatorios):

7f3a9c2e-1b4d-4e8f-a6c3-9d2b8e1f0a47
2c8d4f1a-9e3b-47a2-8c6d-1f5e9a0b3c28
a1b2c3d4-e5f6-4789-abcd-ef0123456789
9e8d7c6b-5a4f-3210-ba98-76543210fedc
4f3e2d1c-0b9a-8765-4321-fedcba987654

Observa con detalle el tercer grupo de cualquier línea: siempre empieza por 4. Observa el cuarto grupo: siempre empieza por 8, 9, a o b. Esos dos caracteres no son aleatorios: son los marcadores de versión y variante, y la razón por la que un validador de una línea puede confirmar que una cadena es un UUID v4 genuino.

Si marcas Mayúsculas y vuelves a generar, la misma forma sale en mayúsculas, p. ej. 7F3A9C2E-1B4D-4E8F-A6C3-9D2B8E1F0A47: los bits idénticos, simplemente renderizados para sistemas que esperan GUID en mayúsculas.

Preguntas frecuentes#

¿Qué tan único es de verdad un UUID v4? ¿Alguna vez obtendré un duplicado?#

Los números se vuelven absurdos enseguida. Un único UUID v4 tiene 122 bits de aleatoriedad real (128 menos los 4 bits de versión y los 2 de variante). Para tener siquiera un 50 % de probabilidad de una colisión necesitarías generar unos 2,71 × 10^36 UUIDs: eso es mil millones de miles de millones de miles de millones por segundo durante más tiempo que la edad del universo. Para cualquier base de datos o sistema realista, puedes tratar las colisiones como imposibles y no necesitas comprobarlas.

¿Es seguro usar estos UUIDs como claves primarias de base de datos?#

Sí: la versión 4 es la elección más común para eso justamente porque no necesita coordinación. La única salvedad es la fragmentación del índice: las claves puramente aleatorias se esparcen por un B-tree, así que en una tabla PostgreSQL o MySQL de muchísimas escrituras puedes preferir una variante UUIDv7 (ordenada por tiempo). Para IDs de recursos a nivel de aplicación, correlation IDs y la mayoría de las tablas, la v4 simple sirve.

¿Por qué no usar simplemente Math.random() para construir un UUID?#

Porque Math.random() no es criptográficamente fiable: su salida puede ser lo bastante predecible como para que un atacante que observe unos cuantos IDs pueda adivinar otros. Esta herramienta usa deliberadamente crypto.randomUUID() (y un repliegue a crypto.getRandomValues con el manejo correcto de versión/variante), que obtiene bytes del CSPRNG del sistema operativo. Para cualquier cosa que identifique a un usuario, sesión o recurso, esa distinción importa.

¿Puedo generar aquí UUIDs versión 1, versión 5 o nombrados?#

No, esta página es intencionadamente solo v4, porque la v4 cubre la abrumadora mayoría de los casos de uso reales y no necesita entradas más allá de una fuente de aleatoriedad. Si necesitas un UUID v5 basado en nombre (determinista a partir de un nombre y un espacio de nombres), ese es un cálculo distinto y queda en el código de tu aplicación o en una herramienta dedicada.