Saltar al contenido

Generador UUID v4

Genera UUID v4 de forma segura en el navegador. Útil para datos de prueba y claves primarias. Genera de 1 a 100 a la vez.

100% Gratis Sin registro Solo navegador Descarga instantánea 5 idiomas Modo oscuro
Si algo no funciona o se muestra mal, escríbenos vía Formulario de contacto — usamos los comentarios para mejorar.

Otras herramientas

Artículos relacionados

📖 Dónde se suele tropezar

Genera de uno a cien UUID de versión 4 con crypto.randomUUID() de la API Web Crypto, con o sin guiones, por completo en el navegador. El objetivo de diseño de un UUID es sólo que los identificadores puedan acuñarse de forma única sin coordinación; no te da ni orden, ni significado, ni brevedad. La ausencia de esas tres cosas explica casi todos los problemas que aparecen al usarlos en una base de datos o en una URL.

Caso Qué ocurre Qué hacer
Usarlo como clave primaria ralentiza la base de datos Un UUID de versión 4 es totalmente aleatorio, así que las inserciones caen dispersas por todo el índice. Un árbol B es más eficiente cuando se le añade por el final, de modo que la inserción aleatoria provoca divisiones de página frecuentes y fragmenta el índice. En InnoDB de MySQL la clave primaria es el índice agrupado —los datos de la fila se ordenan por clave primaria—, con lo que el efecto es aún mayor: con decenas de millones de filas, insertar es varias veces más lento que con una clave secuencial y el índice crece en consecuencia. Además, guardarlo como CHAR(36) consume cuatro veces y media el espacio de un BIGINT secuencial de ocho bytes, en cada clave foránea y cada índice. Usa la versión 7, que ordena por tiempo: sus primeros 48 bits son una marca de tiempo Unix en milisegundos, así que los UUID se ordenan por orden de creación y las inserciones se concentran al final del árbol B. Mantiene la apariencia y la unicidad de un UUID y fue diseñada precisamente para resolver este problema (normalizada en la RFC 9562). Donde no dispongas de v7, mantén una clave primaria interna secuencial y guarda el UUID en una columna aparte para uso externo. Revisa también el tipo de almacenamiento: BINARY(16) en lugar de CHAR(36) reduce el espacio a menos de la mitad, y PostgreSQL tiene un tipo uuid nativo. Empieza preguntándote si necesitas un UUID siquiera: si no requieres generación distribuida ni sin conexión, una secuencia basta.
Tratar un UUID como si fuera un secreto La parte aleatoria de un UUID versión 4 son 122 bits, así que adivinarlo no es realista, y sólo por eso aparecen diseños que meten un UUID en una URL dando por hecho que sólo quien lo conozca podrá llegar al recurso. Pero un UUID es un identificador, no un valor pensado para mantenerse en secreto: ponlo en una URL y quedará en el historial del navegador, en las cabeceras de referente, en los registros de acceso, en los de los proxies y en los enlaces compartidos. Peor: la versión 1 incorpora la dirección MAC y la hora de generación, así que ni siquiera es aleatoria; usar v1 como identificador de sesión o token de restablecimiento de contraseña es peligroso. Evita los diseños en los que conocer la URL es lo que concede el acceso. El control de acceso corresponde a la autenticación y la autorización; la dificultad de adivinar una URL es, como mucho, un complemento. Cuando de verdad necesites que la URL actúe como llave, como en un enlace compartido, usa un token dedicado en lugar de un UUID y dale caducidad y una vía de revocación: 32 bytes aleatorios de crypto.getRandomValues() codificados en Base64url es la construcción estándar. Y mantén esa URL fuera de los registros poniéndola en el fragmento (tras la #) en vez de en la ruta, o enviándola por POST: los fragmentos nunca llegan al servidor. Un UUID dice qué es algo; no demuestra quién eres tú.
Diferencias de formato hacen que un id parezca dos Un UUID admite varias grafías: mayúsculas y minúsculas (A1B2 frente a a1b2), con o sin guiones (36 caracteres o 32) y entre llaves ({...}, convención de Microsoft). La RFC 4122 especifica minúsculas al generar y aceptación de ambas al recibir, pero comparados como cadenas todos ellos son valores distintos. En la práctica, que un sistema devuelva mayúsculas mientras otro guarda minúsculas crea registros duplicados de la misma entidad, y como que coincidan o no puede depender de la intercalación de la base de datos, el comportamiento cambia según el entorno y la causa se vuelve difícil de localizar. Normaliza a una sola forma en el borde de tu sistema: con guiones y en minúsculas es lo más común y coincide con la recomendación de la RFC. Pasa por toLowerCase() los valores que lleguen por API antes de compararlos o guardarlos. Guardarlos en una columna binaria o de tipo uuid nativo, en lugar de en una cadena, es el arreglo de fondo: en binario la cuestión de la grafía sencillamente no existe, y el tipo uuid de PostgreSQL absorbe las grafías de entrada y las trata como el mismo valor. Y valida allí donde aceptes un UUID: dar error en la frontera ante un valor mal formado es mucho más rastreable que crear en silencio un segundo registro.

Con las colisiones, preocuparse demasiado y preocuparse demasiado poco son errores por igual. Un UUID de versión 4 lleva 122 bits aleatorios, y generar mil millones por segundo durante un siglo deja aún una probabilidad de colisión despreciable, pero eso vale sólo si la aleatoriedad es criptográficamente segura. Existen implementaciones que construyen UUID sobre Math.random(), y esas sí colisionan en la práctica. Los dispositivos embebidos y los servidores recién arrancados andan especialmente escasos de entropía, y hay casos documentados de varias máquinas produciendo el mismo valor. Usa crypto.randomUUID() en el navegador y la API criptográfica de aleatoriedad de tu lenguaje en el servidor. Una cosa más: crypto.randomUUID() sólo está disponible en un contexto seguro: HTTPS o localhost. Esa es casi siempre la explicación cuando la función misteriosamente no existe en un montaje interno por HTTP.

📖 Cómo usar

  1. 1
    Configura la cantidad
    Ingresa un número entre 1 y 100.
  2. 2
    Elige con/sin guiones y genera
    Marca sin guiones y haz clic en Generar.
  3. 3
    Usa la copia masiva
    Usa la copia masiva para copiar todos los UUIDs.

❓ Preguntas frecuentes

¿Qué es UUID v4?
UUID v4 es un identificador aleatorio de 128 bits (RFC 4122).
¿Hay riesgo de colisión?
Teóricamente sí, pero con 122 bits de aleatoriedad es negligible.
¿Se puede usar UUID como clave primaria?
Sí, pero UUID v4 puede fragmentar índices. Considera UUID v7 si necesitas orden.
🐛 ¿Encontró un problema con esta herramienta?

Gratis, sin registro. Incluso solo los pasos para reproducir ayudan. Los informes van directamente al operador y se usan para corregir.

* Se envía automáticamente la info del navegador (UA / pantalla / idioma / URL) para reproducir