PythonChallenge 挑战之路 Level-18

这一关的提示就是:

<!-- it is more obvious that what you might think -->
而这两幅图显然只有亮度有区别,一开始联想到是鸭子,所以尝试用darkness去替换,不对,尝试用brightness,对了
然后按照提示,下载 deltas.gz

看来下一步就是处理这个压缩文件了。稍微研究了一下这个文件,发现是类似一开始图片的两片数据。那么应该就是把数据进行分割。

import gzip,difflib
ff = gzip.open('deltas.gz','r')
deltas = ff.read()
ff.close()
deltas = deltas.splitlines()
left,right = [],[]
for row in deltas:
    left.append(row[:53])
    right.append(row[56:])
diff = list(difflib.ndiff(left,right))

png = ['','','']
for row in diff:
    bytes = [chr(int(byte,16)) for byte in row[2:].split()]
    if row[0]=='-': png[0]+=''.join(bytes)
    elif row[0]=='+': png[1]+=''.join(bytes)
    elif row[0]==' ': png[2]+=''.join(bytes)

for i in range(3):
    open('out18_%d.png' %i,'wb').write(png[i])
答案是:




所以用hex/bin.html替换网页,butter,fly作为口令,就可以过关了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值