Idioma : en | de | fr | es

UUID frente a GUID: ¿cuál es la diferencia?

Los desarrolladores se encuentran con frecuencia con ambos términos en API, bases de datos, sistemas distribuidos y entornos Windows. A primera vista, parecen intercambiables, y en la mayoría de las implementaciones modernas, efectivamente lo son. Sin embargo, comprender su origen, la alineación de sus especificaciones y los detalles de su implementación ayuda a aclarar cuándo es importante la terminología y cuándo no.

Esta guía explica la estructura, las normas y las consideraciones prácticas sin repeticiones ni afirmaciones vagas, solo con distinciones técnicamente relevantes.

GUID frente a UUID: terminología y antecedentes históricos

Los términos tienen su origen en ecosistemas diferentes.

  • UUID (identificador único universal) se define en normas internacionales como RFC 4122 e ISO/IEC 9834-8.
  • GUID (identificador único global) es el nombre que utiliza Microsoft para el mismo formato de identificador de 128 bits en Windows, COM y .NET.

La RFC 4122 establece explícitamente que los UUID también se conocen como GUID. La documentación de Microsoft confirma que sus identificadores siguen la misma estructura y reglas de generación.

Desde el punto de vista de las normas, no hay divergencias estructurales, la diferencia radica en la convención de nomenclatura y el contexto del ecosistema.

UUID y GUID: estructura interna y formato

Ambos identificadores comparten características básicas idénticas:

  • 128 bits (16 bytes)
  • Representados como 32 dígitos hexadecimales.
  • Formato textual común: 8-4-4-4-12

Ejemplo:

550e8400-e29b-41d4-a716-446655440000

Campos estructurales

Un identificador estandarizado incluye:

  1. Componente basado en el tiempo o aleatorio
  2. Campo de versión
  3. Campo de variante
  4. Nodo adicional o bits aleatorios

El campo de versión determina cómo se generó el valor.

El campo de variante determina la compatibilidad con la familia de especificaciones.

Estos elementos existen independientemente de la terminología.

Diferencia entre GUID y UUID a nivel de especificación

Para evaluar la diferencia entre GUID y UUID, debemos examinar la alineación de las especificaciones.

La RFC 4122 define:

  • Disposición de bits.
  • Numeración de versiones.
  • Codificación de variantes.
  • Representación textual canónica.

La implementación de Microsoft se ajusta a estas reglas. Los sistemas Windows anteriores incluían variantes de compatibilidad, pero la generación moderna de GUID cumple con los requisitos de la RFC.

Versiones definidas por RFC 4122

Versión

Método de generación

Uso habitual

1

Marca de tiempo + MAC

Sistemas heredados

2

Seguridad DCE

Poco frecuente

3

Basado en nombres (MD5)

ID determinísticos

4

Aleatorio

Más habitual

5

Basado en nombres (SHA-1

Determinístico (hash más fuerte)

En el software moderno, la versión 4 predomina debido a su simplicidad y fuerte aleatoriedad.

No existe una versión exclusiva para un término.

GUID o UUID: diferencias prácticas en la programación

En el desarrollo de aplicaciones, la distinción suele aparecer solo en la nomenclatura de las API.

.NET

Guid id=Guid.NewGuid();

Java

UUID id=UUID.randomUUID();

Python

import uuid

uuid.uuid4()

Go

import «github.com/google/uuid»

id := uuid.New()

Todos los ejemplos producen identificadores de la versión 4 compatibles con RFC.

La diferencia radica en el nombre del tipo, no en la estructura ni en la lógica de generación.

Orden de bytes y representación binaria

El matiz más técnico aparece en el nivel binario.

RFC define los campos en orden de bytes de red (big-endian).

Windows históricamente almacenaba ciertos componentes internamente utilizando endianidad mixta.

Esto afecta a:

  • Comparaciones de bytes sin procesar.
  • Serialización binaria.
  • Intercambio binario entre plataformas.

Importante:

La forma textual canónica permanece idéntica en todas las plataformas.

Recomendación práctica

Cuando la interoperabilidad es importante:

  • Intercambie identificadores como cadenas.
  • Evite la comparación directa de bytes sin procesar entre sistemas.
  • Utilice bibliotecas de análisis sintáctico oficiales.

Comparación estructural

Aspecto

UUID (término estándar)

GUID (término de Microsoft)

Longitud

128 bits

128 bits

Especificación aplicable

RFC 4122

Implementación basada en RFC

Formato de texto

8-4-4-4-12 hexadecimal

Igual

Versión común

v4

v4

Multipropósito

Si

Si

Origen del ecosistema

IETF / ISO

Microsoft

La tabla muestra la equivalencia práctica.

Cuando la distinción realmente importa

En escenarios típicos (API REST, microservicios, bases de datos), no hay diferencias de comportamiento.

Sin embargo, se debe tener cuidado en:

  1. Interoperabilidad COM.
  2. RPC heredado de Windows.
  3. Almacenamiento binario de bajo nivel.
  4. Hash a nivel de bytes o firma digital.
  5. Formatos de serialización personalizados.

Si los identificadores se tratan únicamente como matrices de 16 bytes, se debe gestionar explícitamente el endianismo.

Seguridad y mejores prácticas

Las características de seguridad dependen de la versión, no de la terminología.

  • La versión 1 puede exponer la marca de tiempo y la información del hardware.
  • Se recomienda la versión 4 para identificadores únicos de uso general.
  • Las versiones 3 y 5 proporcionan valores deterministas basados en nombres.

Mejores prácticas:

  • Utilice siempre bibliotecas estándar.
  • Prefiera la versión 4 a menos que se requiera un comportamiento determinista.
  • Almacene en formato textual canónico para facilitar la portabilidad.
  • Evite construir manualmente secuencias aleatorias de 16 bytes: los bits de versión y variante deben configurarse correctamente.

Aclaración final

En la ingeniería de software moderna, ambos términos se refieren al mismo estándar de identificador único de 128 bits.

La distinción es histórica y está determinada por el ecosistema:

  • Un término tiene su origen en especificaciones internacionales formales.
  • El otro tiene su origen en la nomenclatura de implementación de Microsoft.

Desde el punto de vista funcional, estructural y algorítmico, describen el mismo formato de identificador. Comprender esto elimina confusiones innecesarias y centra la atención en las consideraciones técnicas reales: método de generación, serialización, estrategia de almacenamiento e interoperabilidad.