Idioma : en | de | fr | es

UUID frente a GUID: diferencias clave y cuándo utilizar cada uno
Volver a los blogs

JS Generar UUID: Cómo crear UUID en JavaScript

Los identificadores únicos son esenciales en las aplicaciones modernas. Ayudan a distinguir objetos, sesiones, registros de bases de datos y eventos de sistemas distribuidos sin colisiones. Un Identificador Universalmente Único (UUID) resuelve este problema generando identificadores con una probabilidad extremadamente baja de duplicación.

En esta guía, aprenderás formas prácticas de crear identificadores únicos en JavaScript utilizando APIs nativas del navegador, paquetes externos e implementaciones manuales. Los ejemplos son adecuados para entornos de frontend y backend.

Comprender los UUID en las aplicaciones JavaScript

Un UUID es un identificador de 128 bits que normalmente se representa como una cadena con el siguiente formato:

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

Ejemplo:

c32d8b45-92fe-44f6-8b61-42c2107dfe87

Cada segmento contiene caracteres hexadecimales. La versión del UUID determina cómo se genera el valor.

Las versiones comunes incluyen:

  • v1 — basado en marca de tiempo y dirección MAC
  • v3 — generado usando un espacio de nombres y hash MD5
  • v4 — generado aleatoriamente
  • v5 — espacio de nombres con hash SHA-1
  • v7 — identificadores ordenados por tiempo

En la mayoría de los proyectos web, los desarrolladores prefieren v4 porque es aleatorio y simple de generar.

Métodos para crear identificadores únicos en JavaScript

Existen varias formas prácticas de generar identificadores según tu entorno y tus requisitos.

Comparación de los enfoques disponibles

Método

Entorno

Seguridad

Dependencia

Web Crypto API

Navegador

Alta

Ninguna

paquete npm uuid

Node.js / Navegador

Alta

generador personalizado

Cualquiera

Media

Ninguna

paquete uuidv7

Node.js

Alta

Cada enfoque se adapta a diferentes escenarios, que exploramos a continuación.

Crear un identificador con la Web Crypto API

Los navegadores modernos incluyen una API segura que puede generar identificadores sin bibliotecas externas. Este método funciona en contextos HTTPS.

Ejemplo: UUID aleatorio de JavaScript

const id=crypto.randomUUID();

console.log(id);

Ejemplo de salida:

018b2f0a-45a7-778b-88b7-da6933b704a3

Esta función produce un identificador de versión 4 utilizando aleatoriedad criptográficamente segura. Según la documentación, está disponible a través del objeto global crypto del navegador y también funciona en web workers.

Cuándo usar este enfoque

Úsalo cuando:

  • ejecutas código en un navegador moderno
  • tu sitio usa HTTPS
  • quieres cero dependencias

Ejemplo de uso de UUID en el navegador con JavaScript

function createSession() {

return {

sessionId: crypto.randomUUID(),

createdAt: Date.now()

};

}

const session = createSession();

console.log(session);

Este enfoque es ideal para:

  • identificadores de sesión
  • claves temporales de interfaz de usuario
  • modelos de datos del lado del cliente

Uso de un paquete UUID dedicado

Las aplicaciones del lado del servidor y las herramientas de compilación a menudo dependen de bibliotecas externas.

Instalación de una biblioteca UUID de JavaScript

Instala el paquete usando npm:

npm install uuid

El paquete admite varias versiones de UUID y funciona tanto en entornos Node.js como en entornos con bundlers.

Ejemplo de implementación

import { v4 as uuidv4 } from 'uuid';

const id=uuidv4();

console.log(id);

Ejemplo de salida:

7e8c2c70-6c47-4d9f-b49b-7c9e0df6b81d

Las bibliotecas suelen exponer funciones adicionales como:

  • conversión de arreglos de bytes
  • generación con espacio de nombres
  • identificadores deterministas

Ejemplo de UUID en JavaScript con selección de versión

El paquete uuid permite múltiples estrategias de generación.

Ejemplo: generar varias versiones

import { v1 as uuidv1, v4 as uuidv4, v5 as uuidv5 } from 'uuid';

const timeUUID = uuidv1();

const randomUUID = uuidv4();

console.log(timeUUID);

console.log(randomUUID);

Casos de uso típicos:

Versión de UUID

Caso de uso

v1

Ordenación de eventos

v4

Identificadores aleatorios

v5

IDs deterministas

Los desarrolladores suelen elegir v4 para la mayoría de los sistemas porque no revela información de hardware ni de marcas de tiempo.

Implementación de un generador personalizado ligero

En entornos sin Web Crypto ni paquetes npm, un generador manual puede ser suficiente.

Ejemplo: crear una función UUID en JavaScript

function generateId() {

return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'

.replace(/[xy]/g, function(c) {

const r = Math.random() * 16 | 0;

const v = c === 'x' ? r : (r & 0x3 | 0x8);

return v.toString(16);

});

}

console.log(generateId());

Esta implementación imita el formato de la versión 4.

Sin embargo, tiene limitaciones:

  • usa Math.random() en lugar de aleatoriedad criptográfica
  • no es adecuada para identificadores sensibles a la seguridad

Úsala solo para tareas ligeras como claves temporales de interfaz de usuario.

Identificadores modernos ordenados por tiempo

Algunos sistemas distribuidos requieren identificadores ordenables.

Ejemplo: nuevo enfoque de UUID en JavaScript usando v7

Instala un paquete dedicado:

npm install uuidv7

Luego genera identificadores:

import { uuidv7 } from 'uuidv7';

const id=uuidv7();

console.log(id);

Los identificadores de versión 7 combinan marcas de tiempo con aleatoriedad, lo que los hace útiles para:

  • registros de eventos
  • bases de datos distribuidas
  • sistemas de alto volumen

Casos prácticos de uso para identificadores en JS

Los desarrolladores generan con frecuencia IDs únicos en situaciones como:

Registros de base de datos

const user = {

id: crypto.randomUUID(),

name: "Alice"

};

React component keys

const items = data.map(item => ({

key: crypto.randomUUID(),

value: item

}));

Seguimiento de solicitudes de API

const requestId = crypto.randomUUID();

fetch("/api/data", {

headers: {

"X-Request-ID": requestId

}

});

Estos identificadores ayudan con la depuración, el registro y el rastreo distribuido.

Mejores prácticas para la generación de identificadores

Sigue estas recomendaciones al implementar la generación de identificadores:

  1. Prefiere aleatoriedad criptográficamente segura
    Evita usar Math.random() cuando sea posible.
  2. Usa bibliotecas consolidadas para producción
    Las bibliotecas manejan el versionado y los casos límite.
  3. Elige la versión correcta
    • v4 → la mayoría de las aplicaciones
    • v7 → identificadores ordenables
    • v1 → sistemas heredados
  4. Evita generar identificadores tanto en el cliente como en el servidor para el mismo recurso
    Esto puede crear problemas de sincronización.

Conclusión

Los identificadores únicos son fundamentales en los sistemas de software distribuidos. JavaScript ofrece múltiples estrategias para generarlos según el entorno y los requisitos de seguridad.

Los desarrolladores pueden:

  • apoyarse en la Web Crypto API para entornos de navegador
  • usar un paquete externo para proyectos Node.js
  • implementar generadores ligeros para tareas simples
  • adoptar identificadores modernos ordenados por tiempo para sistemas a gran escala

Comprender cuándo y cómo generar valores UUID en JS garantiza una identificación fiable de los recursos, reduce el riesgo de colisión y simplifica la arquitectura de la aplicación.