Guía de herramienta

Cómo generar UUIDs

Qué es un UUID, diferencias entre versiones, cuándo usar v4 y cómo generarlos en JavaScript, Node.js y Python.

¿Qué es un UUID?

Un UUID (Universally Unique Identifier) es un identificador de 128 bits diseñado para ser único globalmente sin necesitar un servidor central que lo coordine. Definido en el RFC 4122, se representa como 32 dígitos hexadecimales separados por guiones en 5 grupos:

550e8400-e29b-41d4-a716-446655440000
8 dígitos
4 dígitos
4 dígitos (versión)
4 dígitos (variante)
12 dígitos

Versiones: v1, v3, v4, v5

v1

Basado en tiempo + MAC address del host

+ Ordenable cronológicamenteExpone información del sistema
v3

Basado en MD5 hash de un namespace + nombre

+ Determinista (mismo input = mismo UUID)MD5 ya no se recomienda en contextos de seguridad
v4

Completamente aleatorio

+ Simple, seguro, sin dependenciasNo ordenable por tiempo de creación
v5

Basado en SHA-1 hash de un namespace + nombre

+ Determinista + más seguro que v3Más lento de generar

¿Por qué UUID v4 es el más usado? Porque es completamente aleatorio, no necesita información del sistema, no expone datos del host, y la probabilidad de colisión es astronómicamente baja (1 en 5.3×10³⁶ para dos UUIDs iguales).

Cómo generar UUIDs

JavaScript (navegador moderno)

Usando crypto.randomUUID() — nativo desde 2021
"color:rgba(255,255,255,0.35)">// Disponible en Chrome 92+, Firefox 95+, Safari 15.4+
const uuid = crypto.randomUUID();
console.log(uuid); "color:rgba(255,255,255,0.35)">// "550e8400-e29b-41d4-a716-446655440000"

"color:rgba(255,255,255,0.35)">// Generar múltiples UUIDs
const ids = Array.from({ length: 5 }, () => crypto.randomUUID());
console.log(ids);

Node.js

Con el módulo crypto nativo (Node.js 14.17+)
import { randomUUID } from "crypto";

const uuid = randomUUID();
console.log(uuid);

"color:rgba(255,255,255,0.35)">// CommonJS
const { randomUUID } = require("crypto");
const id = randomUUID();
Con la librería uuid (compatible con todas las versiones)
"color:rgba(255,255,255,0.35)">// npm install uuid
import { v4 as uuidv4, v1 as uuidv1 } from "uuid";

const idV4 = uuidv4(); "color:rgba(255,255,255,0.35)">// Aleatorio
const idV1 = uuidv1(); "color:rgba(255,255,255,0.35)">// Basado en tiempo

console.log(idV4);
console.log(idV1);

Python

Módulo uuid de la librería estándar
import uuid

"color:rgba(255,255,255,0.35)"># UUID v4 (aleatorio)
id_v4 = uuid.uuid4()
print(str(id_v4))  "color:rgba(255,255,255,0.35)"># "550e8400-e29b-41d4-a716-446655440000"

"color:rgba(255,255,255,0.35)"># UUID v1 (basado en tiempo)
id_v1 = uuid.uuid1()
print(str(id_v1))

Casos de uso comunes

IDs de base de datos
Evitar colisiones en sistemas distribuidos sin coordinación central
Tokens de sesión
Identificar sesiones de usuario de forma única e impredecible
Referencias de archivos
Nombrar archivos subidos por usuarios para evitar colisiones
Tracking de eventos
Identificar eventos de analytics o logs de manera única
Ejemplo: usar UUID como PK en una base de datos SQL
"color:rgba(255,255,255,0.35)">-- PostgreSQL
CREATE TABLE usuarios (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  nombre VARCHAR(100) NOT NULL,
  email VARCHAR(255) UNIQUE NOT NULL
);

"color:rgba(255,255,255,0.35)">-- MySQL 8+
CREATE TABLE usuarios (
  id CHAR(36) PRIMARY KEY DEFAULT (UUID()),
  nombre VARCHAR(100) NOT NULL
);

Herramienta relacionada

Generador de UUID

Genera UUIDs v4 al instante con historial de sesión. Copia uno o todos con un clic.

Abrir generador de UUID →