Saltar al contenido

Generador de UUID (v4 y v7)

Genera de 1 a 1000 UUID de versión 4 o 7 de una vez y analiza cualquier UUID: versión, variante y la fecha de creación que guardan los de versión 7.

Generar UUID

Versión
Genera de 1 a 1000 a la vez.

Resultados

Analizador de UUID

Lo que introduces se procesa solo en este navegador y nunca se envía a un servidor. Cómo funciona

Ejemplo UUID v4 y estructura de grupos de 8-4-4-4-12 caracteres

Cómo se usa

Al abrir la página ya hay 10 UUID de versión 4 generados. En Generar UUID puedes cambiar lo siguiente:

  • Versión: «v4 (totalmente aleatoria)» o «v7 (ordenable por tiempo)». En cuanto eliges, se generan valores nuevos.
  • Cantidad: un número entero de 1 a 1000. Si escribes un valor fuera de ese intervalo, al salir de la casilla se ajusta a 1 o a 1000.
  • Mayúsculas, Sin guiones y Llaves { }: la forma de escribir el resultado.
  • Generar: crea valores nuevos con la misma configuración.
  • Copiar todo y Descargar .txt: te llevas todos los resultados, uno por línea. El archivo descargado se llama uuid.txt. Cada línea tiene además su propio botón para copiar un solo valor.

Si generas más de 100, en pantalla solo se ven los 100 primeros; el resto aparece al pulsar «Mostrar todos». La copia y la descarga incluyen siempre todos los valores, también los que no se ven.

Más abajo, el Analizador de UUID recibe un UUID y muestra su «Versión», su «Variante» y la «Marca de tiempo incluida».

En qué se diferencian la versión 4 y la versión 7

Un UUID es un valor de 128 bits, de los cuales 6 están reservados para anotar la versión y la variante. La diferencia entre versiones está en cómo se rellenan los 122 restantes.

Posición Versión 4 Versión 7
Primeros 48 bits Aleatorios Milisegundos transcurridos desde el 1 de enero de 1970 (UTC)
4 bits Versión (4) Versión (7)
12 bits Aleatorios El RFC 9562 los deja como bits aleatorios; esta herramienta los usa como contador
2 bits Variante Variante
62 bits Aleatorios Aleatorios

De un UUID de versión 4 no se puede deducir nada con solo mirarlo. A cambio, no tiene ningún orden: usado como clave primaria de una base de datos, cada valor nuevo cae en un punto cualquiera del índice, y eso significa más divisiones de página en el árbol B y menos aciertos de caché.

En la versión 7 los primeros dígitos son la hora, de modo que ordenar los valores como texto equivale a ordenarlos por creación, y como clave primaria los valores nuevos se van apilando al final del índice. El precio es que el valor deja a la vista el momento en que se generó, con precisión de milisegundos. Para identificadores que no deben permitir a nadie de fuera adivinar cuándo se registró un usuario o se hizo un pedido, la versión adecuada es la 4.

La versión 4 se genera con crypto.randomUUID() del navegador, y la parte aleatoria de la versión 7 se rellena con crypto.getRandomValues(). En ambos casos son números aleatorios criptográficamente seguros.

Por qué los UUID v7 de una misma tanda salen ordenados

Cuando generas varios UUID de versión 7 de una vez, toda la tanda usa el mismo milisegundo. Con la marca de tiempo idéntica, el orden lo decide el contador de 12 bits que viene a continuación.

  • En el primer valor de la tanda, el contador arranca en un número aleatorio entre 0 y 2047. Con 12 bits se puede contar hasta 4095; usar solo la mitad deja holgura para que no se desborde.
  • A partir del segundo valor, el contador sube de 1 en 1. Como una tanda tiene 1000 valores como máximo, incluso partiendo del inicio más alto, 2047, se acaba en 3046 y el contador no se desborda.
  • Los 62 bits finales se sortean de nuevo para cada valor.

Por ejemplo, si la marca de tiempo es el 1 de enero de 2026 a las 00:00:00,000 (UTC) y el contador arranca en 2047, tres valores seguidos empiezan por 019b76da-a800-77ff, 019b76da-a800-7800 y 019b76da-a800-7801. El 7 con el que empieza el tercer grupo es la versión, y los tres dígitos siguientes, el contador.

El contador no continúa de una tanda a otra. Al volver a pulsar «Generar» se empieza de nuevo con la hora de ese instante, así que la tanda posterior queda detrás de la anterior por su marca de tiempo. Si entretanto el reloj del dispositivo se ha atrasado, ese orden deja de cumplirse.

Probabilidad de colisión

La versión 4 tiene 122 bits aleatorios. Según el cálculo de la paradoja del cumpleaños, para que la probabilidad de que se repita un valor al menos una vez llegue al 50 % hay que generar unos 2,7 × 10^18 UUID. Fabricando mil millones por segundo se tardarían unos 86 años en reunir esa cantidad.

En los UUID de versión 7 que produce esta herramienta, lo que se sortea de nuevo en cada valor son 62 bits. Dentro de una misma tanda los valores no pueden repetirse, porque el contador es distinto en cada uno. Dos valores generados en el mismo milisegundo en dispositivos o pestañas distintos solo coinciden si tienen iguales tanto el contador como los 62 bits aleatorios.

Qué lee el analizador

Si pegas 018f4d2e-7c3a-7b21-9e2f-1a2b3c4d5e6f, el analizador indica versión 7, variante «RFC 9562 (estándar)» y, como marca de tiempo incluida, el 6 de mayo de 2024 a las 09:14:03 (UTC). La hora se muestra en la zona horaria de este navegador: en una zona horaria UTC+9 verás las 18:14:03.

  • La Versión es el primer dígito del tercer grupo (el decimotercer dígito hexadecimal), mostrado como número tal cual. Aunque el valor no exista en el estándar, se enseña igual.
  • La Variante depende de los bits del primer dígito del cuarto grupo.
En pantalla Primer dígito del cuarto grupo Significado
NCS (antigua) 0–7 Valores reservados por compatibilidad con el antiguo sistema NCS
RFC 9562 (estándar) 8, 9, a, b Los UUID estándar que se usan hoy
Microsoft (GUID antiguo) c, d Compatibilidad con los antiguos GUID de Microsoft
Reservada para uso futuro e, f Valores todavía sin definir
  • Cuando todos los dígitos son 0 aparece la etiqueta «UUID nulo (todo ceros)», y cuando todos son f, «UUID máximo (todo f)». El RFC 9562 explica que el nulo se puede usar para indicar «sin valor» y el máximo como marca, por ejemplo, del final de una lista. Por los dígitos que tienen, el nulo se muestra como versión 0 con variante NCS, y el máximo, como versión 15 con variante reservada.

El analizador solo mira la forma. Cualquier cosa con 32 dígitos hexadecimales pasa, así que pasar no significa que ese UUID se haya emitido de verdad. Y si en un valor retocado a mano el dígito de la versión es un 7, la marca de tiempo se lee igualmente a partir de los dígitos que haya en esa posición.

Fuentes

Preguntas frecuentes

Si cambio las opciones de mayúsculas o de guiones, ¿se generan UUID nuevos?

No. «Mayúsculas», «Sin guiones» y «Llaves { }» solo cambian la forma de escribir los valores que ya tienes. Se generan valores nuevos al pulsar «Generar», al cambiar la «Versión» y al modificar la «Cantidad» y salir de la casilla.

¿Para qué sirven las opciones de quitar los guiones o poner llaves?

El formato de 32 dígitos sin guiones resulta cómodo en nombres de archivo y en algunas columnas de bases de datos; el formato entre llaves es sobre todo el que usan el Registro de Windows y los componentes COM para escribir un GUID. Con las tres opciones activadas el resultado tiene este aspecto: {018F4D2E7C3A7B219E2F1A2B3C4D5E6F}.

Si pego en el analizador un UUID de versión 1, ¿me dice cuándo se creó?

No. El analizador solo lee la marca de tiempo de la versión 7. Con un UUID de versión 1 o de versión 6, que guardan la hora de otra manera, verás la versión y la variante, pero en «Marca de tiempo incluida» aparecerá «Esta herramienta solo lee la marca de tiempo de los UUID de versión 7.»

¿Se puede analizar un valor que empieza por urn:uuid: o que va entre comillas?

No. El analizador espera 32 dígitos hexadecimales y solo tolera los guiones, las mayúsculas o minúsculas y unas llaves que envuelvan el valor. Con el prefijo urn:uuid: o con comillas aparece «No es un UUID con formato válido.», así que quítalos antes de pegar.

Última actualización: