Detector de Versión de UUID | Decodifica v1–v8, Nil y Max
Pega un UUID e identifica cada versión de la v1 a la v8, además de Nil, Max y entradas inválidas. El dígito 13 (nibble de versión) y el dígito 17 (bits de variante) se resaltan por color en la vista de bytes, y las marcas de tiempo de v1, v6 y v7 se decodifican junto con la secuencia de reloj y el nodo MAC de v1 y v6.
💡 Sobre esta herramienta
Cuando tienes una columna de UUID en un registro y necesitas saber si cada uno es temporal o puramente aleatorio, el problema es claro: a simple vista puedes ver que el carácter 13 es la versión, pero deducir la variante a partir del dígito 17 o reconstruir a mano una marca de tiempo de 60 bits de la v1 desde la época gregoriana de 1582 no es práctico.
Esta herramienta normaliza lo que pegues a una cadena de 32 dígitos hexadecimales y la clasifica según RFC 4122 (v1–v5) y RFC 9562 (v6, v7, v8, Nil, Max). Acepta formas con guiones, con llaves y con el prefijo urn:uuid:, así que puedes pegar una cadena copiada directamente del código o de una fila de base de datos. El nibble de versión y los bits de variante quedan resaltados, lo que sirve también para entender visualmente cómo se distribuyen los bits dentro del UUID.
🧐 Preguntas Frecuentes
¿Qué es exactamente un nibble de versión? Un nibble son 4 bits, es decir, un solo dígito hexadecimal. En un UUID el dígito 13 (sin contar los guiones) es ese nibble: codifica el número de versión, de la 1 a la 8.
¿En qué se diferencia la versión de la variante? La versión indica el método de generación (tiempo, azar, hash de nombre). La variante indica la familia de disposición de bits. La herramienta lee los bits altos del dígito 17 e informa RFC 4122, NCS, Microsoft o Reservado. Casi todos los UUID reales son de variante RFC 4122.
¿Por qué la marca de tiempo de la v1 da un año tan antiguo si la calculo manualmente? Porque la v1 y la v6 cuentan intervalos de 100 nanosegundos desde el 15 de octubre de 1582, fecha de adopción del calendario gregoriano, no desde la época Unix. La herramienta aplica ese desplazamiento y muestra el resultado en formato ISO 8601. La v7, en cambio, usa milisegundos Unix directos.
¿Cómo distingue una v3 de una v5? Ambas son basadas en nombre: derivan de un espacio de nombres más un hash. La diferencia es el algoritmo: v3 usa MD5 y v5 usa SHA-1. La herramienta lo indica en los metadatos extraídos.
¿Qué ocurre con un UUID de solo ceros? Se reporta como UUID Nil. Si todos los bits son 1, se reporta como Max. Ambos son valores especiales definidos en RFC 9562 y se usan como marcadores de posición o valores sin asignar.
📚 La teoría detrás de los bits
Para quien estudia el formato, vale la pena seguir el recorrido de los 128 bits. Un UUID se escribe como 32 dígitos hexadecimales en cinco grupos (8-4-4-4-12). De esos 128 bits, 4 se reservan para la versión y 2 o 3 para la variante, dejando el resto para la carga útil: 122 bits de azar en la v4, o un reloj de milisegundos más azar en la v7. Comprender que la versión ocupa solo un nibble explica por qué un mismo formato puede albergar esquemas tan distintos, desde la dirección MAC de la v1 hasta el hash SHA-1 de la v5. Decodificar a mano es un buen ejercicio; esta herramienta lo automatiza para que verifiques tu razonamiento.