Skip to content

¿Qué es GUID? — Estructura, versiones y unicidad explicadas

2026-05-24

Etiquetas: Windows · GUID · Guía · QuickGUID


Si desarrollas en Windows, seguro que ya lo has visto — una cadena de caracteres hexadecimales que parece texto aleatorio:

6B29FC40-CA47-1067-B31D-00DD010662DA

Puede aparecer en el registro, en archivos de configuración del proyecto, en la salida de logs o en medio de un mensaje de error. Sabes que se llama GUID y que "debería ser único", pero puede que nunca te hayas parado a pensar: ¿qué es exactamente esta cadena? ¿Por qué tiene este aspecto? ¿Por qué no se repite?

Hablemos de eso hoy.

UUID y GUID: Dos nombres para lo mismo

Primero, un dato que muchos desconocen: GUID y UUID son exactamente lo mismo.

  • UUID (Universally Unique Identifier) es el nombre oficial, definido en RFC 4122.
  • GUID (Globally Unique Identifier) es el alias que le dio Microsoft.

Así de simple. UUID es el nombre estándar; GUID es la denominación que Microsoft utiliza en COM, la API de Windows, .NET y otras tecnologías. El GUID que ves en Windows y el UUID que ves en Linux son, en esencia, la misma cosa.

Para mantener la coherencia, en este artículo usaremos principalmente el término GUID — después de todo, hablamos de desarrollo en Windows.

La estructura del GUID: Parece caótico, pero tiene lógica

Un GUID estándar se ve así:

6B29FC40-CA47-1067-B31D-00DD010662DA

8-4-4-4-12, en total 32 caracteres hexadecimales (128 bits), divididos en 5 segmentos por guiones. Parece aleatorio, pero en realidad tiene estructura:

6B29FC40-CA47-1067-B31D-00DD010662DA
              ↑    ↑
          VERSIÓN  VARIANTE

La clave está en el primer carácter del tercer segmento y el primer carácter del cuarto segmento:

  • Versión (Version): El primer carácter hexadecimal del tercer segmento indica qué algoritmo se usó para generar el GUID. 1 significa v1, 4 significa v4 y 7 significa v7.
  • Variante (Variant): El primer carácter hexadecimal del cuarto segmento indica a qué especificación estándar sigue el GUID. Si comienza con 8, 9, A o B, sigue RFC 4122 — esto aplica a la gran mayoría de los GUIDs que ves en el día a día.

Así que la próxima vez que veas un GUID, basta con echar un vistazo al primer carácter del tercer segmento para saber si fue generado con v1, v4 o v7. Es mucho más útil de lo que parece a primera vista.

¿Qué versiones de GUID existen realmente?

La especificación UUID define múltiples versiones, pero en la práctica solo tres son realmente relevantes:

v1: Basado en tiempo y dirección MAC

Los GUID v1 se generan combinando la marca de tiempo actual (con precisión de 100 nanosegundos) con la dirección MAC de la tarjeta de red.

Ventaja: Naturalmente ordenable por tiempo de generación. Desventaja: Expone el momento de generación y la dirección MAC es información de hardware — un problema real de privacidad y seguridad. Un atacante que obtenga un GUID v1 puede deducir tu dirección MAC y el momento exacto en que se generó.

Por eso v1 apenas se usa hoy en día, aunque todavía puedes encontrarlo en sistemas antiguos.

v4: Puro azar

v4 es la versión más común en la actualidad. Excepto por los bits fijos de versión y variante, los 122 bits restantes se rellenan completamente con números aleatorios.

Sin marca de tiempo, sin información de hardware — la unicidad depende puramente del azar. Simple pero extremadamente efectivo.

Lo que generan new Guid(), uuid.uuid4() o crypto.randomUUID() en tu proyecto es casi siempre v4.

v7: El recién llegado con ordenamiento temporal

v7 se incorporó oficialmente al estándar en 2024. Utiliza los primeros 48 bits para almacenar una marca de tiempo en milisegundos y rellena el resto con números aleatorios.

¿Por qué crear v7? Porque v4, aunque excelente, es completamente aleatorio y no se puede ordenar por tiempo. Para las bases de datos esto es un problema:

  • Cuando se usan GUIDs como clave primaria con v4, el orden de inserción y el orden del índice no coinciden, lo que provoca divisiones frecuentes del árbol B+ y degrada el rendimiento de escritura.
  • Con v7, como la primera mitad es una marca de tiempo, el orden natural es ascendente. El orden de inserción y el del índice son prácticamente consistentes — mucho mejor rendimiento de escritura.

Si tu proyecto usa GUIDs como clave primaria de base de datos, v7 es una mejor opción que v4.

"Los GUID no se repiten" — pero la afirmación viral de Internet está mal

Siempre que se habla de la unicidad de los GUIDs, alguien pregunta: ¿y si coinciden dos?

Hay una afirmación que circula por Internet: "La probabilidad de colisión de los GUID v4 es tan pequeña que, generando mil millones por segundo durante mil millones de años, no habría ninguna coincidencia." Suena tranquilizador, ¿verdad?

Pero matemáticamente, esta afirmación es incorrecta.

¿Dónde está el error? La paradoja del cumpleaños

La afirmación cae en una trampa clásica de la intuición: la paradoja del cumpleaños.

Quizás conozcas este problema: ¿Cuántas personas deben estar en una habitación para que la probabilidad de que dos compartan cumpleaños supere el 50%? La intuición dice que, con 365 días, harían falta al menos 180 personas.

En realidad, solo se necesitan 23 personas.

La razón: No estamos comprobando si una persona específica coincide con una fecha concreta, sino si algún par entre todos comparte fecha de cumpleaños. A medida que aumenta el número de personas, las combinaciones de pares crecen rápidamente.

Con los GUIDs pasa igual. No se trata de si un GUID específico coincide por casualidad con otro, sino de si entre todos los GUIDs generados, algún par colisiona. El número de combinaciones crece de forma cuadrática con la cantidad total — mucho más rápido de lo que la intuición sugiere.

La verdadera línea temporal de colisiones

Si generamos estrictamente a razón de mil millones de GUIDs por segundo sin parar y recalculamos con la fórmula de la paradoja del cumpleaños:

  • 10 años: Probabilidad de colisión aproximadamente 1%
  • 33 años: Probabilidad de colisión aproximadamente 10%
  • 86 años: Probabilidad de colisión aproximadamente 50%

¿Y mil millones de años? Para entonces las colisiones serían incontables.

¿Podemos seguir tranquilos?

Por supuesto. Los cálculos anteriores asumen "mil millones por segundo, sin parar" — en la realidad, ninguna aplicación alcanza ese volumen.

Si durante todo el ciclo de vida de tu sistema se generan en total 100 billones de GUIDs (ya una cifra astronómicamente exagerada), la probabilidad de colisión es apenas de una en mil millones.

Puedes usar GUIDs sin preocupación.

Las frustraciones cotidianas con GUIDs

De vuelta a la práctica. Los verdaderos puntos de dolor al trabajar con GUIDs no están en si se repiten o no, sino en estos:

La generación es incómoda

El guidgen.exe que viene con Windows solo genera uno a la vez. ¿En el terminal? PowerShell sí puede: [guid]::NewGuid(). Pero ¿y si necesitas generar 50 de golpe para datos de prueba? Tendrás que escribir un script.

El caos de formatos

Un mismo GUID se ve muy diferente según el lenguaje y el contexto:

6B29FC40-CA47-1067-B31D-00DD010662DA          // Formato estándar
6B29FC40CA471067B31D00DD010662DA              // Sin guiones
{6B29FC40-CA47-1067-B31D-00DD010662DA}        // Llaves (C#/COM)
urn:uuid:6B29FC40-CA47-1067-B31D-00DD010662DA // URN
aKXwnELGRYeysdADQClibto=                      // Base64

Copias un GUID de un log y necesitas convertirlo al formato de macro DEFINE_GUID en código C? Tendrás que transformarlo a mano.

Extraer de texto es tedioso

Tienes un archivo de log con decenas de GUIDs dispersos y quieres encontrarlos todos. ¿Escaneo visual o escribir una expresión regular?

regex
[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}

Funciona, pero cada vez tienes que buscarlo para escribirlo correctamente.

La solución: QuickGUID

Todos estos puntos de dolor se resuelven con una sola herramienta. QuickGUID es una caja de herramientas nativa de Windows para GUIDs:

  • Generación por lotes de v4 o v7, hasta 1.000 de una vez
  • Más de 10 formatos con conversión en tiempo real: estándar, sin guiones, llaves, Base64, array de bytes en C, macro DEFINE_GUID... todo con vista previa instantánea
  • Extracción inteligente: pega un log o código fuente y reconoce automáticamente todos los GUIDs, con conversión por lotes
  • Decorador en vivo: comillas, sufijo, mayúsculas/minúsculas — cambia globalmente y el resultado está listo para copiar

Totalmente gratuito, 100% offline.

Para terminar

Los GUIDs son una de las infraestructuras más discretas pero fiables del desarrollo de software. 128 bits, sin necesidad de coordinación central, sin conexión a internet — y aun así únicos a nivel global. Este diseño lleva más de 30 años en funcionamiento y sigue siendo una de las mejores prácticas para identificadores en sistemas distribuidos.

Espero que este artículo te haya ayudado a entender los "porqués" que hay detrás de los GUIDs.