UUID Decoder dan Validator

Dekode dan validasi UUID untuk mengekstrak versi, timestamp, dan metadata

Coba contoh ini:

¿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 (usualmente RFC 4122) basada en bits 64-65
  • Components: Extracción de marca de tiempo, ID de nodo u otros datos basados en la versión
  • Tiempo de generación: Para UUIDs basados en tiempo (v1, v6, v7)

Example: 123e4567-e89b-12d3-a456-426614174000 es un UUID Versión 1 creado el 2018-10-03 09:45:32 UTC.

Resumen de la estructura UUID

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

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

Decodificación por versión de UUID

VersionQué se puede decodificar
UUID v1
  • Marca de tiempo (con precisión de 100ns, desde el 15 de octubre de 1582)
  • Dirección MAC (si no está aleatorizada)
  • Secuencia de reloj (para evitar colisiones)
UUID v3/v5
  • No se puede decodificar la entrada original
  • Puede verificar si fue creado a partir de entradas conocidas
  • Puede distinguir entre v3 (MD5) y v5 (SHA-1)
UUID v4
  • Solo datos aleatorios
  • Sin información extraíble
  • Puede verificar que es un UUID v4 válido
UUID v6
  • Marca de tiempo (con precisión de 100ns, desde el 15 de octubre de 1582)
  • Dirección MAC (si no está aleatorizada)
  • Secuencia de reloj (para evitar colisiones)
UUID v7
  • Marca de tiempo Unix (precisión en milisegundos)
  • Componente aleatorio (no decodificable)
ULID
  • Marca de tiempo Unix (precisión en milisegundos)
  • Componente aleatorio (no decodificable)

Extracción de marca de tiempo de UUIDs

Tipo de UUIDMétodo de extracción de tiempoEpoch
UUID v1Combinar bits 0-31, 32-47 y 48-59, reordenando componentes de la marca de tiempo15 de octubre de 1582
UUID v6Extraer bits 0-59 (ya en orden correcto)15 de octubre de 1582
UUID v7Extraer bits 0-47 (milisegundos Unix)1 de enero de 1970
ULIDDecodificar los primeros 10 caracteres Base32 para obtener milisegundos Unix de 48 bits1 de enero de 1970

Reglas de validación UUID

  • Verificación de formato: 8-4-4-4-12 dígitos hexadecimales con guiones
  • Verificación de versión: El carácter 13 debe ser 1-8
  • Verificación de variante: El carácter 17 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$

Aplicaciones prácticas

  • Análisis forense: Determinar cuándo se crearon los IDs
  • Debugging: Rastrear el comportamiento del sistema a través de marcas de tiempo de ID
  • Auditing: Validar la integridad cronológica
  • Análisis de seguridad: Detectando IDs falsificados o manipulados
  • Recuperación de datos: Reconstrucción de relaciones temporales
  • Migraciones de sistema: Entendiendo detalles de implementación de UUID heredados

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

Para UUID v1 y v6, a menudo 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. Formato con dos puntos como XX:XX:XX:XX:XX:XX
  3. Verifique si la dirección MAC es real o aleatoria examinando el bit multicast

Si el primer byte tiene el bit 0x01 activado, 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 sin información de marca de tiempo. No se puede determinar el momento de creación a partir de un valor UUID v4.

¿Qué tan precisas son las marcas de tiempo en UUIDs basados en tiempo?

Las marcas de tiempo de UUID v1/v6 tienen precisión de 100 nanosegundos. UUID v7 y ULID tienen precisión en milisegundos. Sin embargo, la precisión real del reloj del sistema puede variar.

¿Puedo convertir entre versiones de UUID?

No, no puede convertir directamente entre versiones preservando el mismo valor de identificador. Las diferentes 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 generador. Sin embargo, muchas implementaciones modernas aleatorizan esto por privacidad.

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

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

Resources