bitlvl
ES

Generador de UUID y ULID

Genera identificadores con la fuente aleatoria criptográfica del navegador, o pega uno para averiguar de qué tipo es y cuándo se creó.

Tipo
Formato
 

Inspeccionar un identificador

Los resultados y mensajes de esta herramienta se muestran en inglés.

¿Qué tipo debo usar?

UUID v4UUID v7ULID
Contenido122 bits aleatoriosmarca de tiempo de 48 bits en ms + 74 bits aleatoriosmarca de tiempo de 48 bits en ms + 80 bits aleatorios
Ordenable por tiempoNoSíSí
Forma de texto8-4-4-4-12 hex8-4-4-4-12 hex26 caracteres Crockford Base32
EstándarRFC 4122 / 9562RFC 9562 (2024)Especificación comunitaria
Comodidad en bases de datosMala como clave primaria: las inserciones aleatorias fragmentan los índices B-treeBuena: las filas nuevas caen al final del índiceBuena, pero necesita una columna de 128 bits o una cadena de 26 caracteres

Para un sistema nuevo, UUID v7 es la opción sensata por defecto: es un UUID estándar, todas las bases de datos y lenguajes lo aceptan y mantiene los índices compactos. Usa v4 cuando el ID no deba revelar cuándo se creó. ULID es una buena elección donde importa su forma de texto más corta y apta para URL y el ecosistema ya lo usa.

Leer los bits

En xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, el dígito M es la versión (4 o 7) y los primeros bits de N son la variante (8, 9, a o b en los UUID estándar). En un v7, los primeros 12 dígitos hex son el tiempo Unix en milisegundos; en un v1 el tiempo está repartido en tres campos y los últimos 12 dígitos suelen ser la dirección MAC de la máquina que lo creó. El inspector decodifica todo esto.

Colisiones

Un UUID v4 tiene 2¹²² posibilidades. Para alcanzar un 50 % de probabilidad de una sola colisión tendrías que generar unos 2,7 × 10¹⁸, aproximadamente mil millones por segundo durante 85 años. En la práctica el riesgo es una mala fuente aleatoria, no las matemáticas, por eso esta página usa crypto.getRandomValues y no Math.random.

Preguntas

¿Cuál es la diferencia entre UUID y GUID?

Ninguna en la práctica. GUID es el nombre que da Microsoft al mismo identificador de 128 bits. Las herramientas de Windows suelen escribirlos en mayúsculas con llaves, que es lo que reproduce la opción de formato de aquí.

¿Estos UUID son realmente aleatorios?

Los bits aleatorios vienen del generador criptográficamente seguro del navegador (WebCrypto), la misma fuente que se usa para claves. No se derivan de tu reloj ni de nada predecible, salvo que v7 y ULID incluyen a propósito la hora actual.

¿Se puede rastrear un UUID hasta mí?

Un v4 no. Un v7 o ULID revela cuándo se creó. Un v1 puede contener la dirección MAC de la máquina que lo generó, por eso v1 cayó en desuso.

¿Debo usar un UUID como clave primaria en la base de datos?

Sí si necesitas IDs generados por clientes o entre servicios, pero prefiere v7 para que las inserciones sean secuenciales. Guárdalo en una columna UUID nativa de 16 bytes (uuid en PostgreSQL, BINARY(16) en MySQL) en lugar de una cadena de 36 caracteres.

¿Qué es el UUID nil?

00000000-0000-0000-0000-000000000000, definido como marcador de posición que significa «sin valor». El RFC 9562 define también un UUID max de todo unos.