Generador de UUID
Introducción
El Generador de UUID de Toollect es una herramienta basada en navegador que produce Identificadores Únicos Universales (UUIDs, también conocidos como GUIDs) en las ocho versiones estándar — v1 a v8. Ya sea que necesite identificadores aleatorios para formularios web, claves ordenadas por tiempo para registros de base de datos, IDs deterministas basadas en espacios de nombres para sistemas distribuidos, o UUIDs de formato personalizado para integración heredada, esta herramienta cubre todo el espectro sin requerir instalación de software ni procesamiento del lado del servidor.
Los UUIDs son uno de los estándares de identificación más adoptados en ingeniería de software, utilizados desde claves primarias de base de datos e identificadores de recursos de API hasta trazado distribuido y tokens de sesión. El Generador de UUID de Toollect consolida todas las versiones de UUID en una sola interfaz, permitiéndole elegir la variante adecuada para su caso de uso y generarla al instante con un solo clic.
Toda la generación se ejecuta completamente dentro de su navegador usando la Web Crypto API. No se transmiten datos a través de la red, no se establecen cookies ni se registran identificadores. La herramienta funciona sin conexión después de la carga inicial de la página y en todos los navegadores y dispositivos modernos.
Casos de uso
Diferentes versiones de UUID sirven a diferentes necesidades arquitectónicas. Elegir la versión correcta depende de sus requisitos de ordenamiento, determinismo, privacidad y coordinación del sistema.
Claves primarias de base de datos
Los UUIDs eliminan la necesidad de una secuencia central al generar claves primarias en instancias de base de datos distribuidas. UUID v4 es la opción más simple, pero UUID v6 y v7 ofrecen ordenamiento por tiempo que reduce significativamente la fragmentación de índices B-tree en bases de datos como PostgreSQL y MySQL. Para sistemas que necesitan tanto unicidad global como rápido rendimiento de escritura, v7 se ha convertido en la opción moderna recomendada.
Identificadores de sistemas distribuidos
Los microservicios y sistemas distribuidos a menudo generan identificadores de forma independiente en diferentes nodos. UUID v1 incluye un identificador de nodo (derivado de la dirección MAC) y secuencia de reloj, haciendo que los IDs de cada nodo generador sean inherentemente únicos sin coordinación. UUID v4 y v7 también son populares para este escenario debido a su simplicidad.
IDs deterministas basados en nombre
Cuando la misma entrada debe producir siempre el mismo UUID — por ejemplo, generar un identificador estable a partir de un correo electrónico de usuario, una URL de recurso o un nombre calificado por espacio de nombres — UUID v3 (basado en MD5) y v5 (basado en SHA-1) proporcionan determinismo. Esto es útil para almacenamiento direccionable por contenido, identidad de entidades en event sourcing y migración de datos heredados sin cambiar identificadores.
Identificadores de recursos de API
Exponer enteros autoincrementales en URLs de API filtra información sobre la cantidad y el orden de los recursos. Los UUIDs proporcionan identificadores opacos que no revelan nada sobre los internos del sistema. UUID v4 es la opción más común para rutas de recursos de API REST. Las opciones de formato de mayúsculas y sin guiones de la herramienta facilitan la adaptación de UUIDs a diferentes convenciones de URL y formato.
Sistemas personalizados y heredados
UUID v2 (seguridad DCE) añade identificadores de usuario y grupo locales para contextos de seguridad a nivel de sistema operativo. UUID v8 permite diseños de campo personalizados para sistemas que necesitan incrustar bits de datos específicos mientras mantienen el formato UUID estándar. Estas versiones son nicho pero valiosas para escenarios de integración especializados.
Cómo funciona
El Generador de UUID opera completamente del lado del cliente. Cuando selecciona una versión y hace clic en generar, la herramienta invoca el algoritmo apropiado usando JavaScript y la Web Crypto API del navegador.
Para UUIDs basados en aleatoriedad (v4), la herramienta llama a crypto.getRandomValues() para producir bytes aleatorios criptográficamente seguros, luego los formatea en el diseño UUID estándar con los bits de versión y variante correctos. Para UUIDs basados en tiempo (v1, v2, v6, v7), la herramienta lee la marca de tiempo actual del reloj del sistema y la combina con bytes de secuencia de reloj y nodo aleatorios. Para UUIDs basados en nombre (v3, v5), la herramienta hashea un espacio de nombres y un nombre juntos usando MD5 o SHA-1 a través de la API SubtleCrypto, luego extrae 128 bits al formato UUID estándar.
Formato UUID
Un UUID es un valor de 128 bits mostrado como una cadena de 36 caracteres en el formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, donde cada x es un dígito hexadecimal. Los 128 bits están estructurados en campos:
| Campo | Bits | Propósito |
|---|---|---|
time_low |
32 | Bits bajos 32 de la marca de tiempo (v1, v2, v6) |
time_mid |
16 | Bits medios 16 de la marca de tiempo |
time_hi_and_version |
16 | Bits altos 12 de la marca de tiempo + versión de 4 bits |
clock_seq_hi_and_reserved |
8 | Bits altos 6 de la secuencia de reloj + 2 bits de variante |
clock_seq_low |
8 | Bits bajos 8 de la secuencia de reloj |
node |
48 | Identificador de nodo (dirección MAC o aleatorio) |
El nibble de versión (bits 48-51, el nibble más significativo del tercer grupo) identifica qué algoritmo produjo el UUID: 0001 (v1), 0010 (v2), 0011 (v3), 0100 (v4), 0101 (v5), 0110 (v6), 0111 (v7), 1000 (v8). Este es el 4 que ve en un UUID v4 estándar como 550e8400-e29b-41d4-a716-446655440000.
Los bits de variante (bits 64-65, los dos bits más significativos del primer byte del cuarto grupo) indican la variante UUID. RFC 9562 especifica la variante 10xxxxxx (bits 64-65 = 10), lo que significa que el primer carácter del cuarto grupo siempre es 8, 9, a o b.
Ejemplo de diseño binario
La estructura de 128 bits de un UUID se entiende mejor visualmente. Tomando un UUID v4 concreto 550e8400-e29b-41d4-a716-446655440000, así es como los bits se asignan a cada grupo y campo:
Grupo: 1 2 3 4 5
Hex: 550e8400 e29b 41d4 a716 446655440000
Binario: [32 bits] [16 bits] [16 bits] [16 bits] [48 bits]
Nibble de versión (grupo 3, nibble alto):
550e8400-e29b-4 1d4-a716-446655440000
^
version = 0100 (v4)
Bits de variante (grupo 4, byte alto):
550e8400-e29b-41d4- a 716-446655440000
^
variant = 10xxxxxx
Desglose binario completo de los grupos 3-4:
group 3 (16 bits) group 4 start (8 bits)
0100 0001 1101 0100 1010 0111
└─┘ └─┘
ver=0100 (v4) variant | clock_seq_hi
10
Para UUID v7, los primeros 48 bits codifican la marca de tiempo Unix en milisegundos:
018f3a6e-1a2b- 7 bcd-8a1b-2c3d4e5f6789
^
version = 0111 (v7)
groups 1-2: 48-bit Unix ms timestamp
0000 0001 1000 1111 0011 1010 0110 1110 0001 1010 0010 1011
group 3 high nibble:
0111 = version 7
El byte alto del cuarto grupo (a en el ejemplo anterior) contiene los bits de variante. Dado que la variante es 10, este byte siempre está en el rango 1000 0000 (0x80) a 1011 1111 (0xBF), que en hexadecimal corresponde a 8, 9, a o b como primer carácter del cuarto grupo.
Versiones de UUID explicadas
La siguiente tabla resume las ocho versiones estándar de UUID de un vistazo:
| Versión | Algoritmo | Entrada principal | Determinista | Ordenable | Uso típico |
|---|---|---|---|---|---|
| v1 | Basado en tiempo + Nodo | Marca de tiempo, secuencia de reloj, MAC | No | Sí (tiempo) | Sistemas distribuidos, IDs de tiempo heredados |
| v2 | Seguridad DCE | Marca de tiempo, POSIX UID/GID | No | Sí (tiempo) | Identificadores de entorno DCE (nicho) |
| v3 | Hash MD5 | Espacio de nombres + nombre | Sí | No | IDs basados en nombre donde MD5 es suficiente |
| v4 | Aleatorio | 122 bits aleatorios | No | No | Identificadores de propósito general |
| v5 | Hash SHA-1 | Espacio de nombres + nombre | Sí | No | Identificadores basados en nombre (recomendado sobre v3) |
| v6 | Tiempo reordenado | Marca de tiempo (tiempo alto primero) | No | Sí (tiempo) | Claves de base de datos ordenadas por tiempo |
| v7 | Marca de tiempo Unix + aleatorio | Marca de tiempo Unix ms + aleatorio | No | Sí (ms) | Identificadores modernos ordenados por tiempo |
| v8 | Personalizado | Campos definidos por el usuario | Depende | Depende | Formatos experimentales o propietarios personalizados |
UUID v1 — Basado en tiempo
UUID v1 combina una marca de tiempo de 60 bits (intervalos de 100 nanosegundos desde el 15 de octubre de 1582), una secuencia de reloj de 14 bits (para detección de retroceso de reloj) y un identificador de nodo de 48 bits (tradicionalmente derivado de la dirección MAC). Esto le da a cada nodo generador un espacio de identificador único sin coordinación.
La marca de tiempo se distribuye con las partes baja, media y alta en los tres primeros grupos del UUID. Este diseño no secuencial significa que los UUIDs v1 son ordenables por tiempo pero no en un orden monótono amigable para bases de datos — v6 y v7 solucionan esto.
UUID v2 — Seguridad DCE
UUID v2 extiende el diseño de marca de tiempo y secuencia de reloj de v1 pero reemplaza el campo de nodo de 48 bits con un ID de usuario (UID) o grupo (GID) POSIX de 32 bits y un identificador de dominio local de 6 bits. Los 10 bits restantes del campo de nodo y 2 bits de la secuencia de reloj se reutilizan para el dominio local y su estructura:
| Campo | Bits | Fuente |
|---|---|---|
| Marca de tiempo | 60 | Misma época que v1 (100 ns desde 1582-10-15) |
| Secuencia de reloj | 6 | Estándar, reducido de 14 bits |
| Dominio local | 6 | Identifica el dominio UID (POSIX, DCE, etc.) |
| Identificador local | 32 | Valor UID o GID POSIX |
UUID v2 está especificado en el estándar DCE 1.1: Remote Procedure Call, no en la especificación central UUID RFC 9562. Se usa raramente fuera de entornos DCE heredados, y la mayoría de los generadores modernos de UUID lo omiten o lo incluyen solo por completitud. Si está construyendo un nuevo sistema, use v4, v7 o v5.
UUID v3 — Basado en nombre MD5
UUID v3 genera un UUID determinista a partir de un UUID de espacio de nombres y una cadena de nombre. El proceso concatena los bytes del espacio de nombres y el nombre, calcula un hash MD5 y toma los primeros 128 bits como UUID. El mismo espacio de nombres y nombre siempre producen el mismo UUID v3, haciéndolo adecuado para direccionamiento de contenido e identificadores estables.
Consulte la sección UUID v3 vs v5 para una comparación de las dos versiones basadas en nombre.
UUID v4 — Aleatorio
UUID v4 usa 122 bits generados aleatoriamente más 6 bits fijos (4 para el nibble de versión, 2 para la variante). Esta es la versión de UUID más utilizada, soportada directamente por la mayoría de las bibliotecas estándar de lenguajes de programación. El Generador de UUID de Toollect usa crypto.getRandomValues() para garantizar aleatoriedad criptográficamente segura, haciendo la salida adecuada para contextos sensibles a la seguridad como tokens de sesión.
La probabilidad de una colisión entre mil millones de UUIDs v4 generados es aproximadamente 1 en 5,3 × 10²¹ — insignificante para todos los propósitos prácticos.
UUID v5 — Basado en nombre SHA-1
UUID v5 es la contraparte de v3, usando SHA-1 en lugar de MD5 para el hash subyacente. Produce las mismas garantías de determinismo (mismo espacio de nombres + nombre = mismo UUID) con un algoritmo de hash más resistente a colisiones. Para nuevos sistemas que necesitan UUIDs basados en nombre, RFC 9562 recomienda v5 sobre v3.
Consulte la sección UUID v3 vs v5 para la comparación detallada.
UUID v6 — Tiempo reordenado
UUID v6 reestructura la marca de tiempo de v1 para colocar los bits de tiempo más significativos primero. Esto hace que los UUIDs v6 sean monótonamente crecientes cuando se ordenan lexicográficamente, a diferencia de v1 donde la marca de tiempo está dividida entre campos no adyacentes. UUID v6 es un reemplazo moderno de v1 en entornos donde importan los índices de base de datos ordenados por tiempo o el almacenamiento ordenado.
UUID v7 — Marca de tiempo Unix + aleatorio
UUID v7 usa una marca de tiempo Unix de 48 bits en milisegundos seguida de 74 bits aleatorios. La marca de tiempo ocupa los bits más significativos, haciendo que los UUIDs v7 sean ordenables por tiempo de creación — ideal para claves primarias de base de datos donde el rendimiento del índice B-tree es importante. UUID v7 es más simple que v1 o v6 porque no requiere direcciones MAC, secuencias de reloj o conversiones de época de 100 ns.
Para nuevos sistemas que necesitan UUIDs ordenados por tiempo, v7 es generalmente la mejor opción: proporciona ordenamiento de precisión de milisegundos, amplia aleatoriedad e implementación directa.
UUID v8 — Personalizado
UUID v8 reserva el espacio de identificador de versión 8 para formatos UUID experimentales o propietarios. Los únicos bits fijos son el nibble de versión de 4 bits (1000) en los bits 48-51 y la variante de 2 bits (10) en los bits 64-65 — los 122 bits restantes son libres para cualquier diseño de campo personalizado.
| Campo | Bits | Restricción |
|---|---|---|
| Contenido personalizado | 48 | Bits 0-47 (grupos 1-2), formato libre |
| Versión | 4 | Fijado a 1000 |
| Contenido personalizado | 12 | Bits 52-63 (final del grupo 3), formato libre |
| Variante | 2 | Fijado a 10 |
| Contenido personalizado | 62 | Bits 66-127 (grupos 4-5), formato libre |
Los usos comunes de v8 incluyen incrustar un prefijo específico de la empresa, combinar una marca de tiempo truncada con un contador de secuencia, o codificar un identificador heredado en formato UUID manteniendo la compatibilidad con el formato estándar. Por ejemplo, un sistema podría asignar los primeros 32 bits como ID de inquilino, los siguientes 32 bits como marca de tiempo en milisegundos y los 64 bits restantes como sufijo aleatorio — todo dentro de un formato que cualquier analizador UUID estándar puede leer sin modificación.
El formato v8 no está registrado en IANA y no tiene garantías de interoperabilidad entre sistemas. Es un espacio de uso privado para casos donde las versiones estándar de UUID no se ajustan al diseño de datos requerido.
UUID v3 vs v5
Tanto UUID v3 como v5 generan identificadores deterministas a partir de un UUID de espacio de nombres y un nombre, pero difieren en su algoritmo de hash:
| Aspecto | UUID v3 | UUID v5 |
|---|---|---|
| Algoritmo de hash | MD5 (128 bits) | SHA-1 (160 bits, truncado a 128) |
| Resistencia a colisiones | Menor — MD5 se considera criptográficamente roto | Mayor — sin ataques de colisión prácticos |
| Rendimiento | Ligeramente más rápido (MD5 vs SHA-1) | Ligeramente más lento |
| Recomendación estándar | Solo para compatibilidad retroactiva con v3 | RFC 9562 recomienda v5 para sistemas nuevos |
| Interoperabilidad | Requerido si el sistema existente usa v3 | Requerido si el sistema existente usa v5 |
El Generador de UUID de Toollect incluye cuatro espacios de nombres estándar predefinidos por RFC 9562: DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8), URL (6ba7b811-9dad-11d1-80b4-00c04fd430c8), OID (6ba7b812-9dad-11d1-80b4-00c04fd430c8) y X.500 (6ba7b814-9dad-11d1-80b4-00c04fd430c8). También puede proporcionar un espacio de nombres personalizado en formato UUID estándar para espacios de nombres no estándar.
Uso
Usar el Generador de UUID de Toollect no requiere configuración ni registro. La interfaz está dividida en dos paneles — uno para UUID v1/v2/v4/v6/v7/v8 (generación instantánea) y uno para UUID v3/v5 (generación basada en nombre).
Bloque 1 — UUIDs estándar (v1, v2, v4, v6, v7, v8)
- Seleccione la versión de UUID del menú desplegable. El valor predeterminado es v4.
- Haga clic en Generar o presione Enter. Un nuevo UUID aparece instantáneamente en el campo de salida.
- Alterne las opciones de formato según sea necesario:
- Mayúsculas: Convierte la salida a dígitos hexadecimales mayúsculos.
- Sin guiones: Elimina los guiones, produciendo una cadena compacta de 32 caracteres.
- Copie el resultado haciendo clic en el botón Copiar.
El cambio del menú desplegable de versión activa la regeneración automática, por lo que cambiar de v4 a v7 produce inmediatamente un nuevo identificador.
Bloque 2 — UUIDs basados en nombre (v3, v5)
- Seleccione v3 o v5 del menú desplegable de versión en el panel basado en nombre.
- Elija un espacio de nombres seleccionando una de las opciones predefinidas (DNS, URL, OID, X.500) o Personalizado.
- Si usa un espacio de nombres personalizado, ingrese un UUID válido en el campo de texto. La herramienta valida el formato y muestra un error si el UUID está mal formado.
- Ingrese el nombre en el campo de entrada de nombre. El UUID se regenera automáticamente mientras escribe.
- Alterne el formato de mayúsculas y sin guiones y Copie el resultado como en el Bloque 1.
El panel basado en nombre genera UUIDs en cada cambio de entrada — no hay un botón de generar separado para este panel.
Tutorial
Este tutorial guía a través de tres escenarios comunes desde abrir la herramienta hasta copiar el UUID final.
Escenario 1: Generar un UUID v4 para un formulario web
- Abra la herramienta en su navegador. La interfaz del Generador de UUID muestra dos paneles.
- En el Bloque 1, asegúrese de que el menú desplegable de versión esté en v4 (el predeterminado).
- Haga clic en Generar. Aparece un UUID v4, por ejemplo
550e8400-e29b-41d4-a716-446655440000. - Haga clic en Copiar para copiar el UUID a su portapapeles, luego péguelo en su formulario web o solicitud de API.
- Alterne Mayúsculas y haga clic en Generar nuevamente para producir
550E8400-E29B-41D4-A716-446655440000. - Alterne Sin guiones para producir
550e8400e29b41d4a716446655440000para almacenamiento compacto o parámetros de URL.
Escenario 2: Generar un UUID v7 ordenado por tiempo para una clave primaria de base de datos
Suponga que está diseñando una tabla en PostgreSQL que necesita claves primarias globalmente únicas sin una secuencia central, pero también desea un buen rendimiento de escritura.
- Seleccione v7 del menú desplegable de versión del Bloque 1. El campo de salida muestra inmediatamente un nuevo UUID v7, como
018f3a6e-1a2b-7bcd-8a1b-2c3d4e5f6789. - Note los primeros caracteres — UUID v7 comienza con una marca de tiempo Unix en milisegundos, por lo que generaciones sucesivas mostrarán valores crecientes en los primeros grupos.
- Genere varios UUIDs en rápida sucesión y observe que los valores son monótonos: cada nuevo UUID comienza con un prefijo mayor o igual que el anterior.
- Copie el identificador para su sentencia
INSERT:INSERT INTO users (id, name) VALUES ('018f3a6e-1a2b-7bcd-8a1b-2c3d4e5f6789', 'Alice');
Escenario 3: Generar un UUID v5 determinista a partir de una URL de recurso
Imagine que tiene un sistema de gestión de contenido donde cada artículo se identifica por su URL, y necesita un UUID estable que no cambie entre implementaciones.
- En el Bloque 2, establezca la versión en v5.
- Seleccione el espacio de nombres URL. Esto usa
6ba7b811-9dad-11d1-80b4-00c04fd430c8, el espacio de nombres estándar para UUIDs basados en URL. - Ingrese la URL del artículo en el campo Nombre, por ejemplo
https://example.com/articles/uuid-guide. - El UUID aparece automáticamente — cada vez que ingresa la misma URL con el espacio de nombres URL, obtiene el mismo UUID.
- Pruebe el determinismo: Seleccione el espacio de nombres DNS en su lugar y observe que el UUID cambia. Vuelva a URL — el UUID original reaparece.
Consejos profesionales
Domine estas técnicas avanzadas para aprovechar al máximo el Generador de UUID de Toollect:
-
Use v7 en lugar de v1 para claves primarias de base de datos: UUID v7 ordena por marca de tiempo en milisegundos desde los bits más significativos, dándole un orden monótono amigable para B-tree sin la complejidad de direcciones MAC o gestión de secuencia de reloj. Para nuevos proyectos que requieren UUIDs ordenados por tiempo, comience con v7.
-
Prefiera v5 sobre v3 para UUIDs basados en nombre: A menos que necesite interoperar con un sistema que usa v3, use siempre UUID v5. SHA-1 proporciona más margen de seguridad contra colisiones que MD5 con una diferencia de rendimiento insignificante. La herramienta usa v5 por defecto en el panel basado en nombre por esta razón.
-
Elimine guiones para parámetros de URL: Alterne Sin guiones cuando use UUIDs en rutas de URL o parámetros de consulta. Sin guiones, un UUID se convierte en una cadena hexadecimal de 32 caracteres que no requiere codificación URL y es visualmente más limpia en segmentos de ruta.
-
Use espacios de nombres predefinidos para identificadores consistentes entre sistemas: Los espacios de nombres DNS, URL, OID y X.500 están estandarizados en RFC 9562. Usarlos asegura que cualquier generador de UUID conforme a RFC produzca el mismo UUID v3 o v5 para el mismo nombre. Esto es esencial para la concordancia de identificadores entre sistemas.
-
Espacio de nombres personalizado con un UUID v4 fijo: Al crear su propio espacio de nombres para UUIDs v3/v5, genere un UUID v4 una vez, guárdelo en su configuración y reutilícelo. Esto garantiza que todos los identificadores dentro de su espacio de nombres personalizado sean distintos de cualquier otro espacio de nombres.
-
Genere en lote haciendo clic varias veces: Para lotes pequeños, hacer clic rápidamente en Generar produce UUIDs distintos cada vez. Para generación a gran escala, use el método de línea de comandos o programático descrito a continuación.
Conceptos erróneos comunes sobre UUID
Varias creencias ampliamente repetidas sobre los UUIDs son inexactas o engañosas. Comprender los matices le ayuda a tomar mejores decisiones arquitectónicas.
"Los UUIDs son 100 % garantizados únicos." Ningún sistema de identificación puede garantizar la unicidad absoluta, pero los UUIDs usados correctamente ofrecen una resistencia a colisiones astronómicamente alta. Para UUID v4, la probabilidad de al menos una colisión entre mil millones de IDs generados es aproximadamente 1 en 10¹⁴. Para versiones basadas en tiempo (v1, v6, v7), las colisiones entre diferentes nodos requieren reinicio de reloj simultáneo en múltiples máquinas. La tasa de colisión práctica en todos los UUIDs correctamente implementados es efectivamente cero.
"UUID v4 es siempre la mejor opción." UUID v4 es el más versátil y está bien para la mayoría de aplicaciones, pero no es óptimo para todos los escenarios. Para claves primarias de base de datos, la distribución aleatoria de v4 causa divisiones de página y amplificación de escritura en índices B-tree. UUID v7 ofrece ordenamiento por tiempo que mantiene los índices más eficientemente. Para identificadores deterministas que deben ser reproducibles a partir de un nombre, v3 o v5 es la única opción correcta.
"Los UUIDs son completamente aleatorios." Solo UUID v4 es completamente aleatorio (122 bits de entropía). UUID v1, v2, v6 y v7 incrustan marcas de tiempo, haciéndolos parcialmente predecibles — información que podría filtrarse a través del identificador. UUID v3 y v5 son deterministas para una entrada dada. Si la impredecibilidad es un requisito (tokens de seguridad, identificadores de sesión), use v4 con la Web Crypto API.
"Todos los UUIDs tienen el mismo formato." Todos los UUIDs RFC 9562 comparten el formato hexadecimal de 36 caracteres 8-4-4-4-12, pero la estructura interna difiere radicalmente entre versiones. Un UUID v1 incrusta dirección MAC y bits de marca de tiempo; UUID v4 es pura aleatoriedad; UUID v7 combina una marca de tiempo con bits aleatorios. Puede identificar la versión por el 13.er carácter (4 = v4, 7 = v7, etc.) y la variante por el 17.º carácter (8, 9, a o b).
"Los UUIDs ralentizan el rendimiento de la base de datos." Esto era parcialmente cierto con versiones antiguas de bases de datos y UUID v4 almacenados como cadenas ASCII. Las bases de datos modernas (PostgreSQL con tipo uuid, MySQL 8+ con UUID_TO_BIN, SQL Server) almacenan UUIDs como valores binarios de 16 bytes con soporte de índice nativo. UUID v7 mitiga aún más la fragmentación del índice mediante generación ordenada por tiempo. La diferencia de rendimiento en comparación con enteros autoincrementales es insignificante para la mayoría de las cargas de trabajo.
Alternativas
Existen varias alternativas al Generador de UUID de Toollect, cada una adecuada para diferentes flujos de trabajo.
| Herramienta / Método | Mejor para | Limitaciones |
|---|---|---|
| Generador de UUID de Toollect | Generación en navegador, todas las versiones v1-v8, sin instalación, privacidad primero | Requiere internet para carga inicial de página, no programable |
Comando Unix uuidgen |
Generación por lotes en terminal, scripting, integración en tuberías | Normalmente solo v1 y v4; varía según la implementación de la plataforma |
| ULID | IDs ordenables de 26 caracteres base32, seguros para URL, no distinguen mayúsculas/minúsculas | Sin bits de versión/variante; no compatible con UUID; solo 80 bits de aleatoriedad |
| NanoID | IDs cortos seguros para URL (21 caracteres por defecto), alfabeto y longitud configurables | No es UUID; sin formato estándar ni versionado; longitud varía según configuración |
| Snowflake (estilo Twitter) | IDs de 64 bits ordenados por tiempo, muy compactos, alto rendimiento en sistemas distribuidos | Requiere coordinación de ID de trabajador; no es formato UUID; implementaciones específicas de plataforma |
| Generadores de UUID online (p.ej. uuidgenerator.net) | Generación rápida de UUIDs individuales sin conexión | Limitados a una o dos versiones; a menudo sin aleatoriedad de grado criptográfico; pueden enviar datos al servidor |
PostgreSQL gen_random_uuid() |
Generación del lado de la base de datos en INSERT | Solo PostgreSQL; normalmente solo v4; sin v7 ni versiones basadas en nombre sin extensiones |
Módulo uuid de Python |
Generación programática en aplicaciones Python | Requiere entorno de ejecución Python; no basado en navegador |
Node.js crypto.randomUUID() |
Generación del lado del servidor Node.js | Solo Node.js; carece de versiones basadas en tiempo y nombre |
Web Crypto API (crypto.randomUUID) |
Generación nativa v4 en navegador sin dependencias | Solo soporta v4; sin opciones de formato ni UUIDs basados en nombre |
Para la mayoría de usuarios que necesitan generación de UUID instantánea, privada y multiversión sin salir del navegador, el Generador de UUID de Toollect ofrece el conjunto de funciones más completo.
Privacidad de datos
El Generador de UUID de Toollect procesa cada byte de sus datos completamente dentro de su navegador. Ningún dato que ingrese — nombres, espacios de nombres o identificadores generados — se transmite a ningún servidor, se almacena en ninguna base de datos ni se registra en ningún sistema.
Toda la generación utiliza la Web Crypto API integrada de JavaScript (crypto.getRandomValues, crypto.randomUUID, crypto.subtle.digest). La página de la herramienta no incluye scripts de análisis, píxeles de seguimiento, cookies ni incrustaciones de terceros. No se crean ni leen entradas de localStorage o sessionStorage.
Después de la carga inicial de la página, el Generador de UUID funciona completamente sin conexión — genere identificadores incluso en modo avión con cero actividad de red. Puede verificar esto inspeccionando la pestaña Red en las herramientas de desarrollador de su navegador o desconectándose completamente de internet.
Solución de problemas
| Problema | Causa probable | Solución |
|---|---|---|
| La salida UUID v4 se repite entre generaciones | crypto.getRandomValues() puede estar simulado o no disponible en entornos de prueba |
En navegadores de producción, crypto.getRandomValues() siempre devuelve entropía fresca. Pruebe generando diez UUIDs en secuencia — todos deberían diferir. |
| UUID basado en nombre (v3/v5) no muestra salida | El campo Nombre está vacío o el espacio de nombres personalizado no es válido | Asegúrese de que el campo Nombre contenga texto. Si usa un espacio de nombres personalizado, verifique que sea un UUID válido en formato estándar (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). |
| La validación del espacio de nombres personalizado falla | El formato UUID es incorrecto — faltan guiones, longitud incorrecta o caracteres hexadecimales no válidos | Ingrese el espacio de nombres como un UUID completo de 36 caracteres incluidos los guiones. La herramienta valida el formato antes de generar. |
| El botón Copiar no funciona | La API del portapapeles del navegador requiere contexto seguro o gesto del usuario | Asegúrese de que la página se sirva a través de HTTPS. El botón Copiar usa navigator.clipboard.writeText(), que funciona en todos los navegadores modernos en páginas HTTPS. |
| UUID v1 muestra valores inesperados | La marca de tiempo o la secuencia de reloj pueden desbordarse | UUID v1 usa ticks de 100 ns desde octubre de 1582. El ciclo de reloj en 2026 está dentro del rango de 60 bits (~292 años). Las secuencias de reloj se restablecen naturalmente si la hora del sistema retrocede. |
El navegador no soporta crypto.randomUUID |
Versión antigua del navegador | La herramienta recurre internamente a crypto.getRandomValues(). Compatible con Chrome 80+, Firefox 75+, Safari 13+, Edge 80+. |
| Los valores UUID v7 no son estrictamente crecientes | Dos generaciones dentro del mismo milisegundo producen el mismo prefijo de marca de tiempo | UUID v7 usa precisión de milisegundos. Dentro del mismo milisegundo, múltiples generaciones comparten la misma marca de tiempo; el sufijo aleatorio cambia cada vez. Esto es por diseño y no afecta el ordenamiento del índice de base de datos. |
Especificaciones técnicas
El Generador de UUID de Toollect está diseñado para corrección, rendimiento y compatibilidad entre navegadores.
Cumplimiento de estándares
| Aspecto | Especificación |
|---|---|
| RFC | RFC 9562 (obsoleta RFC 4122) |
| Formato UUID | 128 bits, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx |
| Variante | Variante RFC 9562 (10xxxxxx) |
| Mayúsculas/minúsculas | Minúsculas por defecto, mayúsculas conmutables |
| Guiones | Incluidos por defecto, extraíbles con opción sin guiones |
Detalles del algoritmo por versión
| Versión | Fuente de entropía | Tiempo de generación |
|---|---|---|
| v1 | performance.now() para marca de tiempo, crypto.getRandomValues() para secuencia de reloj y nodo |
< 1 ms |
| v2 | Igual que v1 con UID/GID POSIX (local), campo de nodo adaptado | < 1 ms |
| v3 | MD5 vía crypto.subtle.digest() |
~2-5 ms (asíncrono) |
| v4 | crypto.getRandomValues() |
< 1 ms |
| v5 | SHA-1 vía crypto.subtle.digest() |
~2-5 ms (asíncrono) |
| v6 | Misma marca de tiempo que v1 pero reordenada (tiempo alto primero) | < 1 ms |
| v7 | Date.now() para marca de tiempo, crypto.getRandomValues() para sufijo aleatorio |
< 1 ms |
| v8 | crypto.getRandomValues() para bits aleatorios |
< 1 ms |
Compatibilidad de navegadores
| Navegador | Versión mínima | Estado |
|---|---|---|
| Google Chrome | 80+ | Soporte completo |
| Mozilla Firefox | 75+ | Soporte completo |
| Apple Safari | 13+ | Soporte completo |
| Microsoft Edge | 80+ | Soporte completo |
| Samsung Internet | 13+ | Soporte completo |
| Opera | 67+ | Soporte completo |
Privacidad y seguridad
- Cero transmisión de datos: toda la generación ocurre en la memoria del navegador
- No se usan cookies, localStorage ni sessionStorage
- Sin scripts de análisis ni seguimiento en la página de la herramienta
- Totalmente funcional sin conexión después de la carga inicial de la página
- No se requiere registro, inicio de sesión ni claves de API
- Aleatoriedad criptográficamente segura a través de la Web Crypto API
Características
- Genere todas las versiones de UUID v1 a v8, incluyendo basadas en tiempo (v1, v6, v7), aleatorias (v4), basadas en nombre (v3, v5), seguridad DCE (v2) y personalizadas (v8)
- Generación aleatoria criptográficamente segura mediante Web Crypto API sin transmisión de red
- Alterne entre mayúsculas y elimine guiones para UUIDs compactos o listos para mostrar
- Generación de UUID basada en nombres con espacios de nombres integrados (DNS, URL, OID, X.500) y espacio de nombres personalizado con validación
- Procesamiento 100 % del lado del cliente sin envío de datos a ningún servidor, sin registro ni instalación
- Generación y copia con un solo clic con resultados instantáneos en todos los navegadores modernos y dispositivos