¿Qué Es un UUID?
Un UUID (Universally Unique Identifier, identificador único universal) es un número de 128 bits que se usa para identificar filas de bases de datos, archivos, peticiones de API y dispositivos sin pedir a un servidor central el siguiente ID libre. Se escribe como 32 dígitos hexadecimales en cinco grupos, 8-4-4-4-12, por ejemplo f47ac10b-58cc-4372-a567-0e02b2c3d479.
Los UUID se definen en el RFC 9562 (2024), que sustituyó al antiguo RFC 4122 y añadió las versiones 6, 7 y 8. El primer dígito hexadecimal del tercer grupo indica la versión (el 4 de 4372 en el ejemplo anterior), y el primer dígito del cuarto grupo muestra la variante (8, 9, a o b en los UUID estándar).

Las Versiones de UUID, Explicadas
Todas las versiones rellenan los mismos 128 bits de forma distinta. Estas son las que realmente encontrará:
122 bits aleatorios. No contiene ningún significado ni nada que pueda filtrarse. Es la opción predeterminada en la mayoría de los lenguajes (crypto.randomUUID(), uuid.uuid4(), Guid.NewGuid()).
Una marca de tiempo Unix de 48 bits en milisegundos seguida de bits aleatorios, así que los ID nuevos se ordenan después de los antiguos. El RFC 9562 la recomienda frente a v1 y v6.
Una marca de tiempo de 60 bits, una secuencia de reloj y un ID de nodo de 48 bits que originalmente era la dirección MAC del equipo. Nuestro generador usa un nodo aleatorio en su lugar.
Un UUID de espacio de nombres más un nombre, con hash SHA-1 (v5) o MD5 (v3). La misma entrada siempre da el mismo UUID. Es preferible v5.
Los campos de la versión 1 reordenados para que los ID se ordenen por tiempo. Sirve sobre todo de puente para sistemas que ya usan v1.
Todo ceros (00000000-0000-0000-0000-000000000000) o todo f. Se usan como marcadores de «sin valor» o «fin del rango».
Advertisement
Cómo Generar un UUID
v4 para un ID aleatorio, v7 si los ID van a un índice de base de datos o deben ordenarse por fecha de creación, v5 si el mismo nombre siempre debe corresponder al mismo UUID.
Genere 1, 10, 100 o hasta 1000 a la vez. Cada uno sale del generador aleatorio criptográficamente seguro del navegador.
Minúsculas estándar, {llaves} y mayúsculas para GUID al estilo de Windows, 32 caracteres sin guiones o una URN urn:uuid:.
Copie un solo UUID o la lista completa, o descárguela como archivo .txt. La dirección de la página guarda su configuración, así que puede añadirla a sus marcadores.
UUID vs GUID: ¿Hay Alguna Diferencia?
GUID (Globally Unique Identifier, identificador único global) es el nombre que Microsoft da a lo mismo. Un GUID creado con Guid.NewGuid() en .NET o con New-Guid en PowerShell es un UUID estándar de versión 4.
La diferencia visible es cómo se suelen escribir: las herramientas de Windows a menudo muestran los GUID en mayúsculas y entre llaves, como {F47AC10B-58CC-4372-A567-0E02B2C3D479}. Elija el formato GUID con llaves y marque Mayúsculas para obtener exactamente eso. Internamente, Windows y .NET guardan los tres primeros grupos en orden de bytes little-endian, así que los 16 bytes en bruto difieren del orden de bytes del UUID aunque el texto sea idéntico. Algunos GUID COM muy antiguos usan los bits de variante propios de Microsoft, que el decodificador de arriba identifica.
Advertisement
UUID v4 vs v7: ¿Cuál Debería Usar?
Ambos son seguros como ID únicos. La diferencia está en lo que ocurre cuando guarda millones de ellos en un índice de base de datos.
Use v7 para claves primarias. Como cada nuevo UUID v7 es mayor que el anterior, las inserciones van al final de un índice B-tree en lugar de a posiciones aleatorias, lo que mantiene los índices compactos y las inserciones rápidas en PostgreSQL y MySQL. SQL Server es la excepción: ordena los valores
uniqueidentifierempezando por sus seis últimos bytes, así que allí v7 no aporta esa ventaja.Use v4 cuando el ID no deba revelar nada. Un UUID v7 contiene su momento de creación al milisegundo; cualquiera que lo vea puede leer esa hora con el decodificador de arriba.
Use v5 para ID estables a partir de nombres, por ejemplo un UUID por nombre de dominio o URL, para que todos los sistemas calculen el mismo valor sin compartir una tabla.
Evite v1 en proyectos nuevos. El v1 clásico incluye la dirección MAC de la máquina y la fecha de creación; el RFC 9562 recomienda v7 en su lugar.
¿Pueden Coincidir Dos UUID?
En teoría sí, en la práctica no. Un UUID de versión 4 tiene 122 bits aleatorios, unos 5,3 × 10^36 valores posibles. Tendría que generar alrededor de 2,7 trillones (2,7 × 10^18) antes de tener siquiera un 50% de probabilidad de un solo duplicado. Eso equivale a mil millones de UUID por segundo durante unos 86 años.
El riesgo real es un generador de números aleatorios defectuoso, no las matemáticas. Esta herramienta usa crypto.getRandomValues(), la fuente criptográficamente segura del navegador, y v7 mantiene un contador para que los UUID creados en el mismo milisegundo se sigan ordenando correctamente y nunca se repitan.
Advertisement
Decodificar un UUID: Versión, Variante y Marca de Tiempo
Abra la pestaña Decodificar y pegue uno o varios UUID, uno por línea, en forma estándar, con llaves, urn:uuid: o de 32 caracteres. Para cada uno verá si es válido, su versión y su variante y, en v1, v6 y v7, la fecha y hora en que se creó.
En los UUID v1 y v6, el decodificador también muestra el ID de nodo y si parece una dirección MAC real o un valor aleatorio. Es una forma rápida de comprobar si los ID antiguos de su sistema están filtrando direcciones de hardware.
Generar un UUID en Código
La mayoría de los lenguajes y bases de datos principales pueden crear UUID sin paquetes adicionales. La compatibilidad con la versión 7 es más reciente: la añadieron Python 3.14, PostgreSQL 18, .NET 9 y Go 1.27.
crypto.randomUUID()
// 'f47ac10b-58cc-4372-a567-0e02b2c3d479' (versión 4)import uuid
uuid.uuid4() # aleatorio
uuid.uuid5(uuid.NAMESPACE_DNS, 'example.com') # basado en nombre, siempre el mismo
uuid.uuid7() # Python 3.14+SELECT gen_random_uuid(); -- versión 4 (PostgreSQL 13+)
SELECT uuidv7(); -- versión 7 (PostgreSQL 18+)Guid.NewGuid() // versión 4
Guid.CreateVersion7() // versión 7 (.NET 9+)
# PowerShell
New-Guiduuidgen # UUID aleatorio (macOS lo muestra en mayúsculas)
uuidgen --time # versión 1 (util-linux)
cat /proc/sys/kernel/random/uuid # kernel de LinuxUUID.randomUUID() // Java, versión 4
uuid.NewV4() // biblioteca estándar de Go 1.27+, versión 4
uuid.NewV7() // Go 1.27+, versión 7
// Go anterior: github.com/google/uuid (uuid.New, uuid.NewV7)Advertisement
Más Herramientas para Desarrolladores
Otras herramientas gratuitas para desarrolladores y administradores de sistemas, todas en su navegador:
Timestamp Unix a fecha y viceversa, en cualquier zona horaria.
Texto, imágenes y archivos a Base64 y viceversa.
Contraseñas aleatorias robustas con análisis de entropía.
Direcciones MAC aleatorias con prefijos de fabricante.