Generador de UUID/GUID Online

Genere identificadores únicos universales (UUID/GUID) seguros y aleatorios en segundos. Ideal para desarrollo de software, bases de datos y sistemas distribuidos.

Formato predeterminado: 8-4-4-4-12 caracteres hexadecimales
Ejemplo: 550e8400-e29b-41d4-a716-446655440000

¿Qué es UUID/GUID?

UUID (Universally Unique Identifier) y GUID (Globally Unique Identifier) son términos intercambiables para identificadores únicos de 128 bits. Creados para generar IDs únicos sin necesidad de coordinación central, son ampliamente utilizados en bases de datos, APIs REST y sistemas distribuidos.

Versiones de UUID

UUID v4 - Aleatorio (Recomendado)

Generado aleatoriamente usando criptografía fuerte. Probabilidad de colisión: ~1 en 2¹²² (trillones de trillones). Ideal para la mayoría de los casos: claves primarias, tokens de sesión, identificadores de recursos.

Ejemplo: 550e8400-e29b-41d4-a716-446655440000

UUID v1 - Basado en Timestamp

Incluye timestamp (60 bits) + dirección MAC del ordenador (48 bits) + contador. Ventaja: ordenable cronológicamente. Desventaja: revela información del sistema (dirección MAC, hora de creación).

Ejemplo: 6ba7b810-9dad-11d1-80b4-00c04fd430c8

Otras Versiones (v3, v5, v6, v7)

v3/v5: Generados por hash (MD5/SHA-1) de un espacio de nombres + nombre. Determinísticos (mismo input = mismo UUID). v6/v7: Propuestas recientes que combinan timestamp ordenable con aleatoriedad segura.

Ejemplo:

Casos de uso comunes

🗄️ Claves Primarias de Base de Datos

Reemplace auto-increment por UUIDs para facilitar la fusión de datos entre entornos (dev, staging, prod) y sharding horizontal. MongoDB, PostgreSQL y MySQL lo soportan nativamente.

🔗 URLs de Recursos REST

/api/users/550e8400-e29b-41d4-a716-446655440000
Los UUIDs en URLs evitan ataques de enumeración y mantienen URLs impredecibles.

🎫 Tokens de Sesión y Autenticación

Tokens OAuth, session IDs, reset tokens. Los UUIDs son criptográficamente seguros e imposibles de adivinar (a diferencia de secuencias numéricas).

📦 Identificadores de Eventos/Mensajes

Rastreo de eventos en microservicios, colas de mensajes (RabbitMQ, Kafka), logs distribuidos. Correlation IDs entre servicios.

📁 Nombres de Archivos Únicos

Subidas de imágenes, copias de seguridad, archivos temporales. Evita conflictos y permite subidas simultáneas sin bloqueos.

UUID vs Auto-increment: Pros y Contras

CaracterísticaUUIDAuto-increment (INT)
Tamaño16 bytes (128 bits)4 bytes (32 bits) o 8 bytes (64 bits)
Generación distribuida✓ Sí, sin coordinación✗ Requiere control central
PrevisibilidadImpredecible (seguro)Predecible (riesgo de enumeración)
Rendimiento de índiceMás lento (128 bits aleatorios)Más rápido (secuencial, cache-friendly)
Ordenación cronológicaNo (v4), Sí (v1, v6, v7)Sí (secuencial)
Fusión de bases de datos✓ Trivial (sin colisión)✗ Complejo (conflictos de ID)
Ideal paraSistemas distribuidos, APIs, seguridadSistemas monolíticos, rendimiento crítico

Cómo usar UUID en diferentes lenguajes

JavaScript/Node.js

// Nativo (Node.js 14.17+)
import { randomUUID } from 'crypto';
const uuid = randomUUID();

// Con biblioteca 'uuid'
import { v4 as uuidv4 } from 'uuid';
const uuid = uuidv4();

Python

import uuid

# UUID v4
uuid_v4 = uuid.uuid4()
print(uuid_v4)  # 550e8400-e29b-41d4-a716-446655440000

# UUID v1
uuid_v1 = uuid.uuid1()
print(uuid_v1)  # 6ba7b810-9dad-11d1-80b4-00c04fd430c8

Java

import java.util.UUID;

// UUID aleatorio
UUID uuid = UUID.randomUUID();
System.out.println(uuid.toString());

PostgreSQL

-- Habilitar extensión
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

-- Generar UUID
SELECT uuid_generate_v4();

-- Crear tabla con UUID
CREATE TABLE users (
  id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
  name VARCHAR(100)
);

FAQ - Preguntas Frecuentes

1. ¿Los UUIDs son realmente únicos? ¿Puede haber colisiones?

Los UUIDs v4 tienen 2¹²² combinaciones posibles. La probabilidad de colisión es astronómicamente baja (1 en 5 mil millones después de generar mil millones de UUIDs). Para fines prácticos, considérelos únicos. Las bases de datos modernas detectan colisiones mediante restricciones UNIQUE.

2. ¿UUID v1 es seguro? ¿Puedo usarlo en producción?

UUID v1 revela el timestamp de creación y la dirección MAC de la máquina, considerado fuga de información. No use para tokens de seguridad o en contextos donde la privacidad es crítica. Prefiera v4 para seguridad, o v6/v7 si necesita ordenación cronológica sin exponer la dirección MAC.

3. ¿UUID impacta el rendimiento de la base de datos?

Sí, pero generalmente aceptable. Los UUIDs aleatorios causan fragmentación del índice B-tree (no son secuenciales). Para PostgreSQL, use UUID v7 o ULID (Universally Unique Lexicographically Sortable Identifier). Para casos extremos de rendimiento (miles de millones de registros), mantenga auto-increment.

4. ¿Debo usar guiones o eliminarlos?

Depende del contexto. Con guiones (estándar RFC 4122): más legible, compatible con bibliotecas estándar. Sin guiones: ahorra 4 bytes en almacenamiento de cadenas, útil para URLs cortas o tokens. PostgreSQL almacena binario (16 bytes) independientemente del formato.

5. ¿Puedo usar UUID como acortador de URLs?

Técnicamente sí, pero ineficiente. Los UUIDs tienen 36 caracteres (con guiones) o 32 sin. Para acortadores de URL, use codificaciones más cortas: base62 (A-Za-z0-9) genera IDs de 6-8 caracteres, suficientes para miles de millones de URLs.

6. ¿UUID funciona en sistemas offline?

¡Sí! Es una de las principales ventajas. Los clientes offline (apps móviles, IoT) generan UUIDs localmente sin conexión al servidor. Cuando sincronizan, no hay conflictos de ID. Ideal para CRDTs y sincronización multi-dispositivo.

Herramientas Relacionadas