Decodificador de UUID y extractor de marcas de tiempo

Descodifica marcas de tiempo de UUID v1, v6 y v7 como ISO UTC y tiempo Unix, y luego inspecciona la versión y los metadatos.

Pruebe estos ejemplos:

¿Qué es la decodificación de UUID?

decodificación de UUID es el proceso de analizar un UUID para extraer información sobre su:

  • Version: Qué versión de UUID (1-8) basada en 4 bits en la posición 48-51
  • Variant: Qué variante de UUID (por lo general RFC 4122) según los bits 64-65
  • Components: Extraer sello de tiempo, ID de nodo u otros datos según la versión
  • Hora de generación: Para UUID basados en tiempo (v1, v6, v7)

Example: 123e4567-e89b-12d3-a456-426614174000 es un UUID de versión 1 con el sello de tiempo 2228-06-25T20:01:28.545Z cuando se muestra con la precisión de milisegundos de JavaScript.

Resumen de la estructura del UUID

FormatDescription
8-4-4-4-1232 dígitos hexadecimales agrupados con guiones
Bits de la versiónBits 48-51 (13.º dígito)
Bits de la varianteBits 64-65 (17.º dígito)

El número de versión aparece como el primer dígito hexadecimal en el tercer grupo (p. ej., 123e4567-e89b-12d3-a456-426614174000 para la versión 1).

Decodificación por versión de UUID

VersionQué se puede decodificar
UUID v1
  • Sello de tiempo (con precisión de 100 ns, desde el 15 de octubre de 1582)
  • Dirección MAC (si no fue aleatorizada)
  • Secuencia de reloj (para evitar colisiones)
UUID v3/v5
  • No se pueden recuperar el espacio de nombres y el nombre a partir del hash
  • Solo se puede regenerar cuando se conocen tanto el espacio de nombres como el nombre
  • Puede distinguir v3 (MD5) de v5 (SHA-1)
UUID v4
  • Solo datos aleatorios
  • Sin información extraíble
  • Puede verificarse que es un UUID v4 válido
UUID v6
  • Sello de tiempo (con precisión de 100 ns, desde el 15 de octubre de 1582)
  • Dirección MAC (si no fue aleatorizada)
  • Secuencia de reloj (para evitar colisiones)
UUID v7
  • Sello de tiempo Unix (precisión de milisegundos)
  • Componente aleatorio (no decodificable)

Extracción de sello de tiempo de los UUID

Tipo de UUIDMétodo de extracción de tiempoEpoch
UUID v1Combinar los bits 0-31, 32-47 y 48-59, reordenando los componentes del sello de tiempo15 de octubre de 1582
UUID v6Combinar los bits 0-47 con los bits 52-63; los bits 48-51 son la versión y se excluyen15 de octubre de 1582
UUID v7Extraer los bits 0-47 (milisegundos Unix)1 de enero de 1970

Reglas de validación de UUID

  • Verificación de formato: 8-4-4-4-12 dígitos hexadecimales con guiones
  • Verificación de versión: El 13.º carácter debe ser 1-8
  • Verificación de variante: El 17.º carácter debe ser 8, 9, A o B (para RFC 4122)

Expresión regular para la validación básica de UUID:

^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Ejemplo de sello de tiempo de UUID v7

017f22e2-79b0-7cc3-98c4-dc0c0c07398f es el vector de prueba RFC 9562 para UUIDv7. Sus primeros 48 bits son milisegundos Unix, que decodifican a 2022-02-22T19:22:22.000Z, 1645557742000 milisegundos, o 1645557742 seconds.

Generar un nuevo UUID v7, o continuar con el Convertidor de marca de tiempo Unix. Estos enlaces no incluyen el UUID que ingresaste.

Aplicaciones prácticas

  • Análisis forense: Determinar cuándo se crearon los IDs
  • Debugging: Rastrear el comportamiento del sistema mediante los sellos de tiempo de los IDs
  • Auditing: Validar la integridad cronológica
  • Comprobaciones de formato: Detectar IDs malformados; un UUID válido no prueba autenticidad
  • Recuperación de datos: Reconstruir relaciones temporales
  • Migraciones de sistema: Comprender detalles de implementaciones heredadas de UUID

Extracción de dirección MAC (v1/v6)

Para UUID v1 y v6, a menudo se puede extraer el identificador de nodo (dirección MAC) si no fue aleatorizado durante la generación:

  1. Extraer los últimos 12 dígitos hexadecimales (48 bits) del UUID
  2. Formatear con dos puntos como XX:XX:XX:XX:XX:XX
  3. Comprobar si la dirección MAC es real o aleatoria examinando el bit de multidifusión

Si el primer byte tiene establecido el bit 0x01, probablemente sea un ID de nodo aleatorio en lugar de una dirección MAC real.

Preguntas frecuentes

¿Puedo determinar exactamente cuándo se creó un UUID v4?

No. UUID v4 es puramente aleatorio y no contiene información de tiempo. No se puede determinar la hora de creación a partir de un UUID v4.

¿Qué tan precisos son los sellos de tiempo en los UUID basados en tiempo?

Los sellos de tiempo de UUID v1/v6 tienen precisión de 100 nanosegundos. UUID v7 tiene precisión de milisegundos. Sin embargo, la precisión real del reloj del sistema puede variar.

¿Puedo convertir entre versiones de UUID?

No, no se puede convertir directamente entre versiones preservando el mismo valor de identificador. Las versiones tienen estructuras fundamentalmente diferentes.

¿Puedo identificar la computadora que generó un UUID v1?

Si el ID de nodo no fue aleatorizado, un UUID v1 puede contener la dirección MAC del sistema que lo generó. Sin embargo, muchas implementaciones modernas la aleatorizan por privacidad.

¿Cómo puedo saber si un UUID es válido?

Compruebe el formato (8-4-4-4-12 dígitos hexadecimales), verifique que el dígito de versión (13.º carácter) sea 1-8 y confirme los bits de variante (17.º carácter es 8, 9, A o B para UUIDs RFC 4122).

Resources