文档章节

Python Challenge Level 18

A
 Adam-Wang
发布于 2014/05/30 17:30
字数 245
阅读 47
收藏 0

初学Python,挑战一下流行的Python Challenge,很不幸,卡在了18关~~被字符字节码之间的转换搞得焦头烂额,不过终于搞定了还是很happy的~~~

主要的问题就是16进制形式的字符如何转成字节码 (注意:不是encoding)

如:['89', '50', '4e', '47', '0d', '0a', '1a', '0a', '00', '00', '00', '0d', '49', '48', '44', '52', '00', '00']

       直接转换成

       b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00' 的形式。

如果使用encode('utf-8'), '\x89'之类的会被转成'\xc2\x89', 不是想要的。

So,直接看代码吧...

'''
Created on May 27, 2014

@author: adam.wang
'''
import difflib
 
file=open(r'./file/deltas/delta.txt')
data=file.readlines()
 
matrix1=[]
matrix2=[]
  
for s in data:
    s=s.replace('\n','')
    matrix1.append(s[0:53])
    matrix2.append(s[56:])
     
diff=list(difflib.ndiff(matrix1, matrix2))

add_data=b''
minus_data=b''
space_data=b''
   
for temp in diff: 
    s=temp[0:1]
    t=b''
    for b in temp[2:].split(): 
        t+=bytes.fromhex(b)
    if s=='+':
        add_data+=t
    elif s=='-':
        minus_data+=t
    else:
        space_data+=t

open('./level18/add.png','wb').write(add_data)
open('./level18/minus.png','wb').write(minus_data)
open('./level18/space.png','wb').write(space_data)


© 著作权归作者所有

共有 人打赏支持
A
粉丝 0
博文 3
码字总数 671
作品 0
南京
私信 提问
运行tensorflow报错

D:\Users\Administrator\AppData\Local\Programs\Python\Python35\python.exe D:/360c/shaozhechen-learn_tensorflow-master/learn_tensorflow/RNN_classification.py I c:\tf_jenkins\home\......

知行合一1
2017/03/20
1K
0
【原创】Python 之快速性能优化(第二部分)

本文为翻译,原文地址:《Quick Python Performance Optimization: Part II》 This is the Part II of Quick Python Performance Optimizations. 本文是 Python 性能优化二两发的第二部分。 ......

摩云飞
2013/11/19
0
0
程序员书籍:Hands-On Penetration Testing on Windows - 2018.pdf

About the e-Book Hands-On Penetration Testing on Windows pdf 页数:454 下载地址 Master the art of identifying vulnerabilities within the Windows OS and develop the desired solu......

Python测试开发人工智能
08/09
0
0
对于sqli-labs基础篇全程使用sqlmap不用手工注入(七夕前夕送给有情人的礼物!!)

个人简介: 萌新一枚,渣渣一个,全程划水,会喊六六 本文断断续续已经写了三天了,其中查过很多其他人的博文 但是发现大多数人关于sql-labs使用的都是手工注入, 由于自己太渣,只能去找工具...

落花四月
08/16
0
0
Django初步使用Celery

Django初步使用Celery 1、Celery方式的选择 这里Celery的中间人,我采用Redis。也可以用Django自身和mongodb等。Celery的中间人你可以理解为在Celery执行过程中的数据支持。保存列队记录、执...

_Change_
09/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

怎样实际项目中运用责任链模式

1 模式概要 1.1 简介 责任链模式为请求创建一个接收者对象链,每个接收者都包含对另一个接收者的引用,如果一个对象不能处理该请求,那么它会把请求传给下一个接收者,依此类推 责任链模式避...

小刀爱编程
5分钟前
1
0
【宇润日常疯测-004】JS 遍历数组如何快!快!快!

首先,我就是一后端全栈,对前端也只是会用罢了。闲的无聊来测测,不深究,只看表面,不喜勿喷! 遍历数组在写 JS 代码时候一定是经常用的,那么怎么遍历能达到最高效率呢,很多人一定没有测...

宇润
9分钟前
4
1
Linux系统如何定制History输出格式

Linux系统使用History命令来查看系统的运行记录,从而找出一些问题。但是History输出的数据中常常没有时间等信息。本文就来教大家Linux系统如何定制History输出格式。   具体方法如下 以r...

linuxprobe16
11分钟前
1
0
(一) pyhon 基础语法(数值 字符串 元组 列表 字典)

1、python的数据类型: 数值 字符串 列表 元组 字典; 数值类型包括; 整型(int) 长整型(long) 浮点型(float) 复数型 字符串; 可以通过type() 来查看是什么类型的; 注释:len()只支持 字符...

芬野de博客
11分钟前
1
0
Android闹钟 AlarmManager的使用

Android闹钟 AlarmManager的使用 AlarmManager介绍   AlarmManager这个类提供对系统闹钟服务的访问接口。   你可以为你的应用设定一个在未来某个时间唤醒的功能。   当闹钟响起,实际上...

东街小霸王
12分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部