volver al archivo
26
MAY
día 26 / 30

Código raíz

Difícil
arraysbitwisestrings
historia · contexto

Historia

Día 26

🔗 Inicio del clímax encadenado (día 1 de 5). Los próximos cinco retos forman una cadena: el resultado de cada uno es el dato de entrada del siguiente. Si te saltas alguno, el reto siguiente parecerá arbitrario. Resuelve los cinco en orden.

Entre los scripts de sistema encuentras uno marcado __init_root__.bin. No está protegido. Dentro: una secuencia de bytes sin contexto.

Es un patrón conocido en el código de Lía: cuando quería dejar una clave escondida a plena vista, XOR acumulado de bytes sueltos y concatenado a un prefijo. Tú mismo lo habías visto cientos de veces en el Día 14.

Esta vez la clave abre algo que la Corporación selló.

objetivo · spec

Tu misión

Tu misión

Implementa derivarCodigoRaiz(bytes) que:

  1. Calcula el XOR acumulado de todos los bytes (enteros 0-255). Array vacío → XOR = 0.
  2. Convierte el XOR a hexadecimal en mayúsculas, con al menos 2 dígitos (padding con 0).
  3. Devuelve "HESPERIDES-" + hex.

Ejemplo

derivarCodigoRaiz([0xFF, 0x60])      // → 'HESPERIDES-9F'
derivarCodigoRaiz([0x01])            // → 'HESPERIDES-01'
derivarCodigoRaiz([])                 // → 'HESPERIDES-00'
validación

Casos de prueba

tests/5.casesmostrando 5 de 5
  1. [01]el código maestro que abre todo lo que viene
  2. [02]padding a 2 dígitos
  3. [03]XOR neutro
  4. [04]XOR múltiple
  5. [05]mismo resultado, fragmentos ruidosos