Si alguna vez has visto una cadena como f47ac10b-58cc-4372-a567-0e02b2c3d479 en una URL, en un registro de base de datos o en la respuesta de una API, te has topado con un UUID, y hay una buena razón para que tenga ese aspecto en lugar de un simple número que va aumentando.
Qué significa UUID
UUID significa identificador único universal: un valor de 128 bits, escrito normalmente como 32 caracteres hexadecimales divididos en cinco grupos por guiones. La parte "universal" es la característica clave: un UUID bien generado tiene, a efectos prácticos, la garantía de no coincidir con ningún otro UUID generado en cualquier otro lugar, por cualquier otra persona, nunca, y sin ninguna coordinación central.
¿Por qué no usar simplemente 1, 2, 3...?
Los identificadores secuenciales funcionan bien dentro de una sola tabla de base de datos, pero se rompen en cuanto un sistema necesita combinar datos de varias fuentes:
- Fusionar bases de datos: dos sistemas que empezaron a numerar desde 1 tendrán colisiones masivas al intentar combinar sus datos.
- Sistemas distribuidos: si varios servidores necesitan generar identificadores de forma independiente sin consultarse entre sí, la numeración secuencial exige una coordinación que los UUID simplemente no necesitan.
- Previsibilidad y seguridad: los identificadores secuenciales filtran información (un pedido con id 1050 le dice a un competidor cuántos pedidos hay aproximadamente) y hacen trivial adivinar los identificadores contiguos. Los UUID no tienen ese problema.
Las distintas versiones de UUID, en breve
No todos los UUID se generan igual: existen las versiones 1 a 8, que se diferencian sobre todo en si se basan en números aleatorios, en una marca de tiempo o en un hash. La más usada hoy es el UUID v4, que se genera a partir de números aleatorios o pseudoaleatorios y no requiere ninguna entrada adicional como una dirección MAC o una fuente de hash.
Cómo generar uno
El generador de UUID de Mcatorce Suite crea uno o muchos UUID v4 aleatorios al instante en tu navegador: útil para datos de prueba de una base de datos, fixtures de tests o cualquier punto de tu código que necesite un identificador único sin tener que añadir una biblioteca solo para eso.

