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.
Y nos dan una lista de palabras como la siguiente:
La explicación del método de cifrado es:
Solución: utilizo 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.
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.
Y nos dan una lista de palabras como la siguiente:
La explicación del método de cifrado es:
Solución: utilizo 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):
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:
Comentarios
Publicar un comentario