Generador de UUID v4 y v7 en línea, y decodificador de UUID

Este generador de UUID crea identificadores únicos de la versión 4, al azar, o de la versión 7, que empiezan por la fecha y hora y por eso se ordenan solos. Puedes sacar hasta 1,000 de una vez, en mayúsculas o sin guiones. Debajo, el decodificador te dice de qué versión y variante es cualquier UUID que pegues y, si la lleva, la fecha en que se creó. Todo se calcula en tu navegador: no se envía ni se guarda nada.

¿Cuál elegir? La versión 4 no revela nada: ni cuándo ni dónde se creó. La 7 deja ver el momento de su creación, al milisegundo, pero como se ordena por fecha funciona mucho mejor como clave primaria en una base de datos: los registros nuevos van al final del índice en lugar de repartirse al azar.

Qué es un UUID

Un UUID (identificador único universal) es un número de 128 bits que se escribe como 32 cifras hexadecimales en grupos de 8-4-4-4-12, por ejemplo 01a1612d-cb14-73a3-bdbe-b4897c9d97de. Se pueden crear en cualquier equipo, sin preguntar a un servidor central, con una probabilidad de repetición despreciable. Los define RFC 9562, de mayo de 2024, que sustituyó a RFC 4122 y añadió las versiones 6, 7 y 8.

  • La versión es la primera cifra del tercer grupo: el 7 de 73a3.
  • La variante está en los primeros bits del cuarto grupo. En los UUID actuales son 10, así que ese grupo empieza por 8, 9, a o b (aquí, la b de bdbe).
  • Mayúsculas o minúsculas: el estándar admite las dos al leer un UUID. Lo habitual es escribirlos en minúsculas.
  • Nil y Max: 00000000-0000-0000-0000-000000000000 y ffffffff-ffff-ffff-ffff-ffffffffffff son dos valores especiales que se usan como «ninguno» y «el último».

Las versiones 4 y 7 por dentro

  • Versión 4: 122 bits al azar más los 6 fijos de la versión y la variante. Hay unos 5.3 × 1036 posibles: para tener una probabilidad de una entre mil millones de repetir uno habría que generar unos 103 billones. Este generador usa crypto.getRandomValues, el generador criptográfico del navegador.
  • Versión 7: los primeros 48 bits son los milisegundos transcurridos desde el 1 de enero de 1970 (UTC), y después van la versión, 12 bits de rand_a, la variante y 62 bits al azar. Para que los UUID creados en el mismo milisegundo salgan en orden, este generador usa rand_a como contador (el método 1 de la sección 6.2 de RFC 9562): empieza en un valor al azar y sube de uno en uno.
  • Versiones 1 y 6: también llevan la fecha, en intervalos de 100 nanosegundos desde el 15 de octubre de 1582, y un nodo que a veces es la dirección MAC del equipo. El decodificador te muestra los dos datos.

Generar y leer UUID en Python

El módulo uuid trae uuid4() y, desde Python 3.14, uuid7(). El atributo time de un UUID v7 son los milisegundos desde 1970:

import uuid
from datetime import datetime, timezone

aleatorio = uuid.uuid4()                 # 122 bits al azar
ordenado = uuid.uuid7()                  # Python 3.14 o posterior: empieza por la fecha en milisegundos
print(aleatorio, aleatorio.version)
print(ordenado, ordenado.version)

# Decodificar uno pegado: versión, variante y, en la 7, la fecha que lleva dentro
u = uuid.UUID("01a1612d-cb14-73a3-bdbe-b4897c9d97de")
print(u.version, u.variant)
print(datetime.fromtimestamp(u.time / 1000, tz=timezone.utc))

# Los v7 generados seguidos salen en orden, así que sirven como clave primaria ordenable
lote = [uuid.uuid7() for _ in range(1000)]
print(lote == sorted(lote))
print(str(uuid.uuid4()).upper(), uuid.uuid4().hex)   # en mayúsculas y sin guiones
$ python3 generar_uuid.py4e157023-2522-45bf-892d-c5133474d627 4
01a1613e-43b9-7039-911c-947932de2440 7
7 specified in RFC 4122
2026-10-22 01:15:53.492000+00:00
True
DBFB473C-0503-45B7-B996-3F976937A027 cfb5c46a99dc49f19b1a7fc42722a0a8

En JavaScript, crypto.randomUUID() devuelve un UUID v4, pero en el navegador solo funciona en páginas con HTTPS; este generador usa crypto.getRandomValues para funcionar en cualquier página. Otras herramientas para desarrolladores: el formateador de JSON, el conversor de fechas Unix y el generador de contraseñas. Todas, en decodigo.com/herramientas.

Formato, versiones, variantes, valores Nil y Max, y métodos para ordenar los v7: RFC 9562 (IETF, mayo de 2024). uuid7() y el atributo time: documentación de Python, añadidos en la 3.14. crypto.randomUUID() solo en contextos seguros: MDN. El ejemplo de Python se ejecutó con Python 3.14. La herramienta se comparó con el módulo uuid de Python en 100,000 UUID de cada versión: formato, versión, variante, fecha de los v7, orden y ninguna repetición.