zoukankan      html  css  js  c++  java
  • pythonchallenge(七)

      转眼间又一个月没有逛博客园,明显的感觉到自己的代码能力变弱,前两周搞项目去了,只是形式上面的答辩而已,并没有涉及到代码层面,也就玩了一下验证码,没有识别玩出校器网页的验证码;转眼间又是各种考试,所幸,考试进入尾声,今天可以玩玩pythonchanllenge,一周没继续闯关,明显感觉到自己的智商余额不足,直接上题:

    http://www.pythonchallenge.com/pc/def/oxygen.html

      进入这个题目,只有一张图片,源码里面的信息只给了网页的title是"smarty",图片的名字叫氧气——“oxygen.png”。那么只能在图片里面找信息,图片的内容是一条河,河边是草木,值得注意的是,图片中间有一段灰色区域,初步估计信息隐藏在这个马赛克区域内。

    oxygen

       首先,利用画图工具可得出该图片的像素是:629*95,再将这段马赛克区域的坐标提取出来:

    横坐标的范围是:0-609,纵坐标的范围是:43-53。

      其次,利用python的Image模块得到里面的像素列表:

    1 from PIL import Image
    2 
    3 
    4 def ques_7(img):
    5     data = [img.getpixel((i, j)) for i in range(0, 609) for j in range(43, 53)]  # 横坐标在0-609中变动,纵坐标在43-53内变动
    6     print data
    7 
    8 png = Image.open("C:\Users\wing1995\Desktop\oxygen.png", 'r')
    9 ques_7(png)

      输出结果如下:

    [(115, 115, 115, 255), (115, 115, 115, 255), (115, 115, 115, 255), (115, 115, 115, 255), (115, 115, 115, 255), (115, 115, 115, 255), (115, 115, 115, 255), (115, 115, 115, 255), (115, 115, 115, 255), (98, 127, 47, 255)................

      根据上述结果可知,输出的像素是一个有着4个元素的元祖列表,其中每个元组里面的第四个元素都是255,并且每个元祖重复7次,那么如何将这些输出结果与答案联系?一般情况,答案的链接都是英文字母,那么可以尝试使用函数`chr`把这些ASCII码转换为字母。

      第二次改进的代码

    1 def ques_7(img):
    2     data = [chr(img.getpixel((i, j))[0]) for i in range(0, 609, 7) for j in range(43, 53, 7)]  # 横坐标在0-609中变动,纵坐标在43-53内变动
    3     print ''.join(data)

    输出结果如下:

    ssmmaarrtt  gguuyy,,  yyoouu  mmaaddee  iitt..  tthhee  nneexxtt  lleevveell  iiss  [[110055,,  111100,,  111166,,  110011,,  110033,,  111144,,  110055,,  111166,,  112211]]

    嘿嘿,很明显,除去重复的字母,最后的样子显现出来。

    smart guy, you made it. the next level is [105, 110, 116, 101, 103, 114, 105, 116, 121]

    那么,数据就是列表[105, 110, 116, 101, 103, 114, 105, 116, 121]隐含的信息,继续将该数组中的数转化为字母,得到的单词为:integrity。

    下一关的网址为:http://www.pythonchallenge.com/pc/def/integrity.html

  • 相关阅读:
    微信小程序实现运动步数排行(可删除)
    微信小程序实现运动步数排行(可删除)
    一个文艺的在线生成漂亮的二维码工具网站
    微信小程序常见的UI框架/组件库总结
    天天快车是款精细的游戏
    MHA的几种死法-叶良辰
    编译maxscale
    mydbtest文档
    高山仰止
    docker居然需要3.10以上的内核
  • 原文地址:https://www.cnblogs.com/wing1995/p/4573847.html
Copyright © 2011-2022 走看看