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:
- Calcula el XOR acumulado de todos los
bytes(enteros 0-255). Array vacío → XOR = 0. - Convierte el XOR a hexadecimal en mayúsculas, con al menos 2 dígitos (padding con
0). - 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
- [01]el código maestro que abre todo lo que viene
- [02]padding a 2 dígitos
- [03]XOR neutro
- [04]XOR múltiple
- [05]mismo resultado, fragmentos ruidosos