Ir al contenido principal

Programación (IX): Solución Reto HackThis "Coding Level 2"

En este post la solución a otro de los retos de programación de la plataforma HackThis.

Este reto tiene el título "Coding Level 2" y mi valoración sobre su dificultad es: .

Su enunciado dice lo siguiente:


A string has been encoded using a very simple custom encryption method, explained here, decrypt the message. You have a 5 second time limit for each attempt.


nos dan una lista de palabras como la siguiente:
La explicación del método de cifrado es:
Soluciónutilizo el siguiente script de Python.

import requests

def Decipher(string_encoded):
    print("")
    print("Cadena cifrada..........................",string_encoded)
    print("Longitud cadena cifrada.................",len(string_encoded))
    i=0
    ascii_str=""
    string_decoded=""
    while i < len(string_encoded):
          if string_encoded[i]!=" ":
             ascii_char=126-(int(string_encoded[i]+string_encoded[i+1])-32)
             ascii_str=ascii_str+str(ascii_char)+","
             string_decoded=string_decoded+chr(ascii_char)
             i+=3
          else:
             ascii_str=ascii_str+" ,"
             string_decoded=string_decoded+" "
             i+=2
    print("Caracteres ASCII decimal................",ascii_str)
    print("Cadena descifrada.......................",string_decoded)
    return string_decoded

url="https://www.hackthis.co.uk/levels/coding/2"
login="https://www.hackthis.co.uk/?login"
payload={"username":"tu usuario","password":"tu contraseña"}

#Empezar una sesion
s=requests.Session()

#Login
s.post(login,data=payload)

#Obtener mensaje cifrado
response=s.get(url).text
cipher_message=response[response.find("< textarea>")+10:response.find("< /textarea")]

#Descifrar mensaje
answer=Decipher(cipher_message)

#Enviar la respuesta
payload={"answer":answer}
s.post(url, data=payload)
response=s.get(url).text
if ("Incomplete" in response):
     print("Incorrect answer")
else:
     print("Correct answer")

Ejecuto este script:

Y, como se observa en la figura anterior, la respuesta es correcta.

Comentarios

Entradas populares de este blog

Criptografía (I): cifrado Vigenère y criptoanálisis Kasiski

Hace unos días mi amigo Iñaki Regidor ( @Inaki_Regidor ), a quien dedico esta entrada :), compartió en las redes sociales un post titulado "Criptografía: el arte de esconder mensajes"  publicado en uno de los blogs de EiTB . En ese post se explican ciertos métodos clásicos para cifrar mensajes , entre ellos el cifrado de Vigenère , y , al final del mismo, se propone un reto consistente en descifrar un mensaje , lo que me ha animado a escribir este post sobre el método Kasiski  para atacar un cifrado polialfabético ( conociendo la clave descifrar el mensaje es muy fácil, pero lo que contaré en este post es la forma de hacerlo sin saberla ). El mensaje a descifrar es el siguiente: LNUDVMUYRMUDVLLPXAFZUEFAIOVWVMUOVMUEVMUEZCUDVSYWCIVCFGUCUNYCGALLGRCYTIJTRNNPJQOPJEMZITYLIAYYKRYEFDUDCAMAVRMZEAMBLEXPJCCQIEHPJTYXVNMLAEZTIMUOFRUFC Como ya he dicho el método de Vigenère es un sistema de sustitución polialfabético , lo que significa que, al contrario que en un sistema...

¿Qué significa el emblema de la profesión informática? (I)

Todas o muchas profesiones tienen un emblema que las representa simbólicamente y en el caso de la  informática: " es el establecido en la resolución de 11 de noviembre de 1977  para las titulaciones universitarias superiores de informática, y  está constituido por una figura representando en su parte central  un  núcleo toroidal de ferrita , atravesado por  hilos de lectura,  escritura e inhibición . El núcleo está rodeado por  dos ramas : una  de  laurel , como símbolo de recompensa, y la otra, de  olivo , como  símbolo de sabiduría. La  corona  será la  de la casa real  española,  y bajo el escudo se inscribirá el acrónimo de la organización. ". Veamos los diferentes elementos tomando como ejemplo el emblema del COIIE/EIIEO (Colegio Oficial de Ingenieros en Informática del País Vasco/ Euskadiko Informatikako Ingeniarien Elkargo Ofiziala ) . Pero no sólo el COIIE/EIIEO adopta el emblem...

Los cuadrados mágicos de El Pueyo de Jaca

Hace poco he pasado unos días en   El Pueyo de Jaca ; un precioso pueblo del pirineo oscense en pleno valle de Tena, en la comarca aragonesa del Alto Gállego. Un valle que es  una verdadera joya en lo que se refiere a sus pueblos (el propio El Pueyo de Jaca, Panticosa, Tramacastilla,...) y a sus parajes naturales (montañas, bosques, ibones, ríos,...),  y  un sitio ideal para practicar senderismo , montañismo, bicicleta de montaña, escalada, etc., sin olvidarme de la gastronomía tensina (migas con uvas, patatas encebolladas,...). El Pueyo de Jaca. Pero no escribo esta entrada para alabar los maravillosos paisajes y otros muchos encantos de este lugar, sino porque antes de ir, un amigo mío, sabiendo que soy un poco o bastante  'freaky'  (yo diría que muy)  y me gustan temas como la criptografía, el simbolismo, etc., me comento que  en El Pueyo de Jaca hay una fachada decorada con hasta 10   cuadrados mágicos . Posiblemente, el cuadrado má...