Generador de UUID

Genera UUIDs en tu navegador: v4 aleatorios, v7 ordenados por tiempo para bases de datos, o v5 deterministas. Hasta 1000 a la vez y nada sale de tu computadora.

Presione Generar para obtener el resultado
Versión
Opciones avanzadas

¿Necesitas un identificador que no entre en conflicto con uno que alguien más haya creado, en una computadora de la que nunca has oído hablar, sin pedirle permiso a nadie? Ese es el trabajo que hace un UUID. Es un número de 128 bits, escrito como 36 caracteres en el familiar patrón 8-4-4-4-12, y todo su diseño consiste en que no habrá dos iguales, a pesar de que nada coordina quién obtiene cuál. Este generador gratuito los crea en tu navegador: elige una versión en Versión, indica cuántos necesitas en Cantidad y haz clic en Generar. La página se abre con un solo v4, la versión que busca la mayoría de los proyectos, por lo que tienes tu primer identificador a un clic de distancia.

Cada identificador es generado por tu navegador a través de la Web Crypto API. La versión 4 usa crypto.randomUUID() si el navegador lo proporciona, y crypto.getRandomValues() en caso contrario; una fuente criptográficamente fuerte de aleatoriedad en lugar de una función seudoaleatoria de JavaScript como Math.random(). La versión 7 coloca una marca de tiempo de 48 bits con precisión de milisegundos al principio, seguida por un contador de 12 bits que aumenta dentro del mismo milisegundo y 62 bits aleatorios, lo cual constituye el método de ordenamiento descrito en el RFC 9562; ese contador es la razón por la que un lote de mil se genera en orden en lugar de estar desordenado. La versión 1 combina una marca de tiempo con un identificador de nodo aleatorio que tiene el bit de multidifusión activado, por lo que nunca incluye la dirección de tu tarjeta de red, a diferencia de como lo hacían las implementaciones originales de la década de 1990. Las versiones 3 y 5 no son para nada aleatorias: calculan el hash de un espacio de nombres junto con un nombre, utilizando MD5 y SHA-1 respectivamente, y ese cálculo también se realiza en tu dispositivo. No se envía nada a ningún servidor, no se registra nada y, una vez que la página ha cargado, sigue funcionando sin conexión.

Versión es el campo que decide todo lo demás. La versión 4 consta de 122 bits aleatorios sin ninguna estructura; es la opción predeterminada y la respuesta correcta cuando un identificador solo necesita ser único. La versión 7 mantiene 62 bits aleatorios, pero comienza con el momento en que se creó, de modo que un conjunto de estos se ordena cronológicamente según su creación; eso la convierte en la versión a la que debes recurrir cuando el identificador se convertirá en una clave de base de datos. La versión 1 es el esquema original basado en tiempo, que se conserva aquí para los sistemas que aún lo requieren. Las versiones 3 y 5 son el par extraño: son deterministas, lo que significa que las mismas entradas producen siempre el mismo identificador, y requieren dos campos adicionales: Espacio de nombres, que puede ser uno de los espacios estándar DNS, URL, OID y X.500 o uno de tipo Personalizado creado por ti, y Nombre, la cadena que se está identificando. Si le pasas a la v5 el espacio de nombres URL y https://example.com/a, obtendrás el mismo UUID hoy, mañana y en la computadora de cualquier otra persona. Debido a eso, Cantidad desaparece cuando se selecciona la v3 o la v5: mil copias de un valor determinista serían solo mil copias de un valor determinista. Para todas las demás versiones, Cantidad va del 1 al 1000.

Cuatro interruptores cambian la forma del resultado sin alterar los 128 bits subyacentes. Mayúsculas imprime los dígitos hexadecimales en versales, Sin guiones proporciona la forma compacta de 32 caracteres que prefieren algunas columnas y nombres de archivo, y Llaves envuelve el valor en { }, que es el formato al que Windows y el mundo de .NET llaman GUID. En Opciones avanzadas, urn:uuid: añade el prefijo que lo convierte en un URN formal; mientras está activado desactiva Llaves y Sin guiones, ya que el estándar permite exactamente un formato URN y es el canónico con guiones. Formato de copia decide cómo se une un lote al copiarlo: uno por línea, separados por comas, o cada valor entre comillas seguido de una coma, ideal para pegarlo directamente en un array en el código. Debajo del resultado hay una línea que informa la aleatoriedad en bits (122 para la v4, 62 para la v7) y, para la v7, la marca de tiempo codificada en el primer identificador del lote, para que el tiempo incluido en el valor sea visible y no simplemente implícito. Tanto Copiar todo como Guardar como archivo respetan el Formato de copia. Historial mantiene tus últimos 10 lotes en tu propio navegador: haz clic en uno para recuperarlo, copia o elimina una entrada individual, o bórralo todo. Borrar vacía el resultado sin cambiar tus ajustes, y a partir de 50 identificadores la lista se convierte en un solo bloque con desplazamiento en lugar de mostrar cincuenta filas.

Lo más importante de esta página es la diferencia entre la v4 y la v7 como clave principal, y no es cuestión de gustos. Los índices de las bases de datos son árboles que se mantienen ordenados, y el lugar donde cae una nueva clave en ese orden determina cuánto trabajo cuesta la inserción. Una clave v4 es aleatoria, por lo que inserciones consecutivas caen en rincones no relacionados del índice: las páginas que estaban llenas se dividen, las partes del árbol que la base de datos mantiene en memoria rara vez son las partes que necesita la siguiente inserción, y el índice termina siendo más grande y más fragmentado de lo que las filas a las que apunta justifican. Una clave v7 comienza con el milisegundo actual, de manera que las inserciones consecutivas caen una junto a otra en el borde derecho del árbol, que es el patrón que produce un entero autoincremental y el patrón en torno al cual se construyeron las estructuras de índices. Ese es todo el intercambio: la v7 te proporciona el comportamiento de inserción de una clave secuencial al tiempo que mantiene la propiedad que te hizo elegir los UUID en primer lugar, que es que cualquiera puede crear uno sin tener que pedírselo a un servidor. El costo de esto es que el momento de creación ahora es legible dentro del identificador, y determinar si eso importa es una cuestión sobre tus datos, no sobre el formato.

Ningún mecanismo comprueba jamás si un UUID es único; su tamaño es la garantía. No hay registro, no hay viaje de ida y vuelta al servidor, no hay búsqueda; un generador produce un número y te lo entrega, y la razón por la que dos de ellos no chocan es simplemente que hay 2^122 valores posibles de v4, unos 5,3 sextillones. El problema del cumpleaños es la forma honesta de medir eso: necesitarías aproximadamente 2,7 trillones de identificadores antes de que existiera una probabilidad equitativa de que dos de ellos coincidieran, lo que equivale a mil millones de UUID nuevos cada segundo durante 86 años. Vale la pena ser precisos sobre lo que eso promete y lo que no. Es una garantía estadística, no aritmética, y solo se sostiene si la aleatoriedad subyacente es real: un generador mal inicializado, o una máquina virtual clonada junto con su reserva de entropía, la rompen de una manera que el formato no puede detectar. La versión 7 acota aún más la cuestión: dentro de un solo milisegundo un generador no puede repetirse en absoluto, porque el contador se incrementa en lugar de lanzar dados, y entre generadores independientes, los 62 bits aleatorios hacen el trabajo.

Un UUID es un identificador, no una contraseña. La versión 4 es impredecible, y eso tienta a la gente a tratarla como si fuera un secreto: un enlace para restablecer una contraseña, una URL imposible de adivinar, un token de sesión o una clave de API. La imprevisibilidad es real, pero el secreto es una propiedad de cómo se maneja un valor, y los identificadores se manejan de manera descuidada por diseño (un factor a considerar ante las leyes de protección de datos personales): terminan en URLs que quedan registradas en historiales del navegador, registros del servidor, encabezados referer y analíticas, y se pegan en mensajes de chat. Las demás versiones son candidatas aún peores. Tanto la versión 1 como la versión 7 codifican el momento de su creación, por lo que cualquiera que tenga una sabe aproximadamente cuándo se creó y puede delimitar el entorno de todo lo creado en ese momento. Las versiones 3 y 5 son deterministas a propósito: un UUID v5 de una dirección de correo electrónico no es un secreto protegido por hash, es un valor que cualquier persona con la misma dirección puede calcular en un segundo. Usa un UUID para darle nombre a algo. Usa un generador de contraseñas, o un token de una biblioteca diseñada para secretos, cuando el valor deba permanecer desconocido.

¿Por qué elegir este generador de UUID?

Los UUID aparecen dondequiera que algo deba ser nombrado antes de que nada pueda confirmar que el nombre está libre. El código de las aplicaciones los genera para las filas que está a punto de insertar, por lo que el objeto adquiere una identidad antes siquiera de llegar a la base de datos y un cliente puede hacer referencia a él mientras la escritura sigue en curso. Los sistemas distribuidos dependen aún más de ellos: un banco o una fintech que registra operaciones que llegan en el mismo instante, un sistema de salud donde dos clínicas crean el mismo expediente a la vez, una app móvil que crea registros sin conexión, y una cola que debe reconocer el mensaje que ya procesó; ninguno de ellos puede esperar su turno para utilizar un contador compartido. La versión 5 cubre una necesidad diferente, que es la de obtener un identificador estable derivado de algo que ya tienes: el mismo documento, la misma URL o la misma cuenta siempre se mapea al mismo UUID, de modo que una importación puede ejecutarse dos veces sin duplicar nada. En otros casos, simplemente son el formato que exige un sistema: un identificador de correlación a través de registros y trazas, un nombre de archivo que no entrará en conflicto cuando las subidas de mil usuarios lleguen al mismo bucket, una clave del registro de Windows o datos de prueba que deben parecerse a los reales.

Vale la pena conocer algunos límites reales. Un lote equivale a una sola versión: el valor de Versión se aplica a todo su contenido, por lo que una serie de v4 y una de v7 constituyen dos lotes distintos. Esto es un generador, no un inspector: pegar un UUID para leer su versión o su marca de tiempo no es algo que haga esta página. El botón Guardar como archivo guarda un archivo de texto sin formato en lugar de un CSV o un JSON. La versión 7 revela abiertamente cuándo se creó hasta el milisegundo, lo que es un compromiso real y no un defecto, y la versión 1 filtra la hora de la misma manera; si eso supone un problema para tus datos, la versión 4 es la que no le dice nada a nadie. Dos valores especiales del estándar no son versiones y, por lo tanto, no aparecen como opciones en Versión, pero puedes copiarlos desde aquí: el UUID nulo, 00000000-0000-0000-0000-000000000000, y el UUID máximo, ffffffff-ffff-ffff-ffff-ffffffffffff. Todo en esta página sigue el RFC 9562, la especificación que reemplazó al RFC 4122 en 2024, por lo que la salida será aceptada por cualquier biblioteca, base de datos o API que maneje UUID. Dentro de esos límites, la garantía es sólida: cada identificador se construye según el estándar, utilizando aleatoriedad criptográficamente segura, en tu propia computadora y nadie más lo ve jamás.

FAQ

¿Cómo genero un UUID?

Elige una versión en Versión, indica cuántos necesitas en Cantidad y haz clic en Generar. La página se abre con un solo identificador de versión 4, que es lo que busca la mayoría de los proyectos, por lo que tienes un UUID ordinario a un solo clic de distancia. Cada valor aparece con su propio botón de copia, y Copiar todo se lleva el lote completo a la vez.

¿Cuál es la diferencia entre un UUID v4 y un v7?

La versión 4 tiene 122 bits aleatorios sin ninguna estructura en absoluto, de modo que dos de ellos no tienen relación entre sí. La versión 7 dedica los primeros 48 bits al milisegundo en el que se creó, añade un contador y 62 bits aleatorios, y por lo tanto es ordenable: un lote se genera en el mismo orden en que se creó. Usa la v4 cuando un identificador solo necesite ser único, y la v7 cuando también vaya a ser una clave de base de datos.

¿Qué versión de UUID debería utilizar?

La versión 4, a menos que tengas un motivo para elegir otra. Elige la versión 7 si el identificador se convertirá en una clave principal y el rendimiento de las inserciones es importante, la versión 5 si necesitas que la misma entrada produzca siempre el mismo identificador, y la versión 1 únicamente si el sistema con el que te comunicas te la pide específicamente. La versión 3 es igual que la versión 5 pero con MD5 en lugar de SHA-1, y existe por cuestiones de compatibilidad.

¿Son los UUID generados verdaderamente aleatorios y seguros?

La aleatoriedad es criptográficamente segura: proviene de la Web Crypto API de tu navegador, a través de crypto.randomUUID() o crypto.getRandomValues(), no de Math.random(). La seguridad en el sentido de que no se pueda adivinar es una cuestión distinta a la seguridad en el sentido del secreto; un UUID es un identificador y no debe utilizarse como una contraseña, un token de sesión o una clave de API.

¿Puedo generar muchos UUID a la vez?

Sí, hasta 1000 a la vez. Ajusta Cantidad y haz clic en Generar; superados los cincuenta valores, el resultado se convierte en un solo bloque con desplazamiento en lugar de una larga lista de filas. Copiar todo y Guardar como archivo toman el lote completo, unido como lo indique Formato de copia: uno por línea, separados por comas o entre comillas para pegarlo directamente en un array.

¿Por qué las versiones v3 y v5 me dan el mismo UUID cada vez?

Porque para eso fueron diseñadas. Las versiones 3 y 5 son deterministas: calculan el hash del espacio de nombres y el nombre que les das, de manera que idénticas entradas producen siempre un identificador idéntico, en cualquier computadora y en cualquier lenguaje. Esto las hace útiles para derivar un identificador estable de algo que ya tienes, y es también el motivo por el cual Cantidad se oculta cuando las seleccionas.

¿Qué son Espacio de nombres y Nombre, y qué espacio de nombres debería elegir?

Son las dos entradas a partir de las cuales se calcula un UUID de versión 3 o versión 5. Espacio de nombres indica qué tipo de cosa es el nombre: DNS para nombres de host, URL para direcciones, OID y X.500 para esos esquemas de directorio, o Personalizado si deseas proveer un UUID de espacio de nombres propio, que es la elección habitual dentro de una aplicación. Nombre es la cadena de texto en sí. Distintos espacios de nombres dan resultados completamente distintos para el mismo nombre, que es el objetivo de tenerlos.

¿Por qué el UUID v7 es mejor que el v4 para la clave principal de una base de datos?

Por el lugar donde caen los valores en el índice. Un índice se mantiene ordenado, y una clave v4 aleatoria aterriza en cualquier parte de él, de manera que las inserciones dividen páginas por todo el árbol y las partes almacenadas en memoria rara vez son las que se necesitarán después. Una clave v7 empieza con el milisegundo actual, por lo que las inserciones consecutivas caen juntas al final del índice, que es el comportamiento de una clave entera secuencial, al tiempo que sigue permitiendo que cualquier servicio genere un identificador sin preguntar a un contador central.

¿Podrían dos UUID llegar a ser alguna vez el mismo?

En principio sí, en la práctica no, y vale la pena saber cuál de los dos es tu caso. Nada comprueba la unicidad: simplemente hay 2^122 posibles valores de la versión 4 (unos 5,3 sextillones) y se necesitarían aproximadamente 2,7 trillones de ellos (mil millones por segundo durante 86 años) antes de que la probabilidad de que haya una sola colisión sea del cincuenta por ciento. La garantía es estadística y no absoluta, y depende de que la aleatoriedad sea auténtica, razón por la cual este generador emplea la Web Crypto API en lugar de una función seudoaleatoria normal.

¿Puedo usar un UUID como contraseña, clave de API o token de sesión?

No, y este es el error más costoso que puedes cometer. Un UUID de versión 4 es impredecible, pero los identificadores se manejan como si fueran de dominio público: terminan en URL, historiales del navegador, registros del servidor, encabezados referer y análisis. Las versiones 1 y 7 revelan además cuándo fueron creadas, y cualquiera que conozca las entradas de las versiones 3 y 5 puede volver a calcularlas. Para todo aquello que deba mantenerse en secreto, utiliza un generador de contraseñas o un token procedente de una biblioteca orientada a secretos.

¿Revela un UUID v7 cuándo fue creado?

Sí, con precisión de milisegundo, y esto es así por diseño, no por un descuido; la marca de tiempo es lo que hace que la v7 se pueda ordenar. La línea debajo del resultado te muestra la hora codificada en el primer valor del lote, para que puedas ver de forma exacta qué es lo que queda expuesto. La versión 1 también contiene una marca de tiempo. Si la hora de creación es un dato que preferirías no publicar, la versión 4 no le dice nada a nadie.

¿Revela el UUID v1 mi dirección MAC?

Aquí no. El esquema original usaba la dirección de la tarjeta de red de la computadora como el campo del nodo, que es de donde proviene la reputación de la v1, pero el estándar también permite un identificador de nodo aleatorio marcado con el bit de multidifusión (multicast bit), y esto es lo que produce este generador. Tu dirección de hardware jamás se lee y nunca aparecerá en el resultado.

¿Para qué sirven Mayúsculas, Sin guiones, Llaves y urn:uuid:?

Únicamente para cambiar su presentación; los 128 bits subyacentes son idénticos en todas sus formas. Mayúsculas imprime los dígitos hexadecimales en versales, Sin guiones entrega la versión compacta de 32 caracteres, Llaves encierra el valor en { } al igual que Windows y .NET escriben los GUID, y urn:uuid: le agrega el prefijo que lo convierte en un URN oficial. Al activar urn:uuid: se desactivan las otras dos opciones porque el estándar define un único formato de URN y es la versión canónica con guiones.