uuidjavascriptcryptoguid

Generar UUID en JavaScript con crypto.randomUUID()

Aprende a generar UUIDs v4 en JavaScript usando la API nativa crypto.randomUUID(). Diferencias entre UUID y GUID, cuándo usarlos y cómo generar en bulk.

4 de mayo de 2026·5 min de lectura

Un UUID (Universally Unique Identifier) es un identificador de 128 bits diseñado para ser único sin necesidad de un servidor central que los coordine. Son la solución estándar cuando necesitas IDs que no colisionen entre sistemas distribuidos, bases de datos o dispositivos distintos.

Desde Node.js 19 y los navegadores modernos, no necesitas ninguna librería para generarlos.

La forma moderna: crypto.randomUUID()

crypto.randomUUID();
// → "f47ac10b-58cc-4372-a567-0e02b2c3d479"

Eso es todo. Un UUID v4 criptográficamente seguro en una sola línea. Disponible en:

  • Navegadores modernos (Chrome 92+, Firefox 95+, Safari 15.4+)
  • Node.js 19+
  • Deno y Bun de serie

El formato es siempre el mismo: 8-4-4-4-12 caracteres hexadecimales separados por guiones, 36 caracteres en total.

¿Qué es UUID v4?

Existen 8 versiones de UUID. La v4 es la más usada en desarrollo web porque sus bits son completamente aleatorios (excepto 6 bits que identifican la versión y la variante del RFC).

Con 122 bits de aleatoriedad, la probabilidad de colisión al generar dos UUIDs es de 1 entre 2¹²² — aproximadamente 1 en 5,3 × 10³⁶. En la práctica, es matemáticamente imposible que dos dispositivos generen el mismo UUID de forma espontánea.

UUID vs GUID: ¿son lo mismo?

Sí, con matices. GUID (Globally Unique Identifier) es el nombre que Microsoft usa para su implementación del estándar UUID. Ambos siguen el mismo RFC 4122, así que son intercambiables en la práctica.

La diferencia es que Microsoft históricamente usaba la versión 1 (basada en la dirección MAC del equipo y el timestamp) mientras que el ecosistema web prefiere la v4 (aleatoria). Hoy ambos términos se usan de forma intercambiable.

Cuándo usar UUID

Casos de uso ideales:

  • IDs de registros en bases de datos cuando los datos se generan en el cliente antes de sincronizarse con el servidor
  • Referencias en sistemas distribuidos donde varios servicios crean entidades de forma independiente
  • Tokens de sesión temporales o IDs de transacción
  • Nombres únicos de archivos para evitar sobreescrituras accidentales
  • IDs de eventos en sistemas de analítica donde el orden no importa

Cuándo NO usar UUID:

Si necesitas IDs ordenables por tiempo de creación, considera ULID (Universally Unique Lexicographically Sortable Identifier) o los UUIDs v7 (disponibles en algunos lenguajes). Los UUIDs v4 son completamente aleatorios y no llevan información temporal.

Si el rendimiento de índices en base de datos es crítico, un BIGINT AUTO_INCREMENT puede ser más eficiente para tablas con millones de registros, aunque sacrifica la capacidad de generación distribuida.

Generación en bulk

Para generar múltiples UUIDs de una vez:

// Array de N UUIDs
function generateBulk(n) {
  return Array.from({ length: n }, () => crypto.randomUUID());
}

generateBulk(5);
// → ["a1b2c3d4-...", "e5f6a7b8-...", ...]

UUID en Node.js (todas las versiones)

Si necesitas compatibilidad con Node.js anterior a la v19, el módulo nativo crypto también lo proporciona:

const { randomUUID } = require("crypto"); // CommonJS
// o
import { randomUUID } from "crypto";      // ESM

randomUUID(); // → "f47ac10b-58cc-4372-a567-0e02b2c3d479"

Esto funciona desde Node.js 14.17.0.

Validar que un string es UUID válido

function isValidUUID(str) {
  return /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(str);
}

isValidUUID("f47ac10b-58cc-4372-a567-0e02b2c3d479"); // true
isValidUUID("not-a-uuid");                           // false

El patrón verifica específicamente la versión 4 (el tercer grupo empieza por 4) y la variante RFC 4122 (el cuarto grupo empieza por 8, 9, a o b).

Comparar UUIDs correctamente

Los UUIDs son case-insensitive por especificación, aunque la mayoría de implementaciones los generan en minúsculas:

function uuidsEqual(a, b) {
  return a.toLowerCase() === b.toLowerCase();
}

El mito de las colisiones

Mucha gente desconfía de los UUIDs por miedo a colisiones. Para ponerlo en perspectiva: si generas 1.000 millones de UUIDs por segundo durante 100 años, la probabilidad de que haya alguna colisión es de aproximadamente 50%. Para un sistema que genera miles de UUIDs al día, las colisiones son estadísticamente imposibles en cualquier escala práctica.

Pruébalo ahora

Nuestro generador de UUID online usa exactamente crypto.randomUUID() con generación masiva, historial de los últimos generados y copia con un solo clic. Sin servidores, sin registro, cada UUID se genera localmente en tu navegador.

Pruébalo sin código

Generador de UUID

UUIDs v4 con crypto.randomUUID().

Abrir herramienta

Hecho por

Miguel Ángel Colorado Marin

Full-Stack Developer · Guadalajara, España

Desarrollo aplicaciones web, herramientas digitales y proyectos completos — desde el diseño hasta el despliegue.

Contáctame