Ir al contenido principal

Programación (VII): Solución Reto WeChall "Can you read me"

En este post la solución a uno de los retos de programación de la plataforma WeChall.

Este reto tiene el título "Can you read me" y mi valoración sobre su dificultad es: .

Su enunciado dice lo siguiente:


A friend and me have a bet running, that you won't beat his OCR program in scanning text out of images.
His average scan time is 2.5 seconds, can you beat that?.


Y nos dan una imagen como la siguiente:
Soluciónutilizo el siguiente script de Python.

from PIL import Image
from io import BytesIO
from urllib.parse import quote as urlencode
from bs4 import BeautifulSoup
import pytesseract
import requests

s = requests.session()

url = 'https://www.wechall.net/'
image_url = url+'challenge/can_you_readme/gimme.php'
solution_url = url+'challenge/can_you_readme/index.php'

payload = {'username': 'tu usuario', 'password': 'tu contraseña'}

s.post(url,payload)
r2 = s.get(image_url)

#Obtener el texto
captcha = Image.open(BytesIO(r2.content))
captcha.save('read_me.png')
print('Resolviendo Captcha')
captcha_text = pytesseract.image_to_string(captcha)
print('Texto extraido',captcha_text)

#Enviar la solucion
r3 = s.get(solution_url + '?action=Answer&solution=' + urlencode(captcha_text)).text
r3 = BeautifulSoup(r3, 'html.parser')
if r3.select('.gwf_errors'):
   exit(r3.select('.gwf_errors li')[0].text)
print(r3.select('.gwf_messages li')[0].text)

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 de

¿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 emblema establecido en dicha resolución, sino que éste se adopta también como im

Criptografía (XXIII): cifrado de Hill (I)

En este post me propongo explicar de forma comprensible lo que he entendido sobre el cifrado de Hill , propuesto por el matemático Lester S. Hill , en 1929, y que se basa en emplear una matriz como clave  para cifrar un texto en claro y su inversa para descifrar el criptograma correspondiente . Hay tres cosas que me gustan de la criptografía clásica, además de que considero que ésta es muy didáctica a la hora de comprender los sistemas criptográficos modernos: la primera de ellas es que me "obliga" a repasar conceptos de matemáticas aprendidos hace mucho tiempo y, desgraciadamente, olvidados también hace demasiado tiempo, y, por consiguiente, que, como dice  Dani , amigo y coautor de este blog, me "obliga" a hacer "gimnasia mental"; la segunda es que, en la mayoría de las ocasiones, pueden cifrarse y descifrase los mensajes, e incluso realizarse el criptoanálisis de los criptogramas, sin más que un simple lápiz y papel, es decir, para mi es como un pasat