攻防世界杂项新手入门 gif
- 利用python读取图片
- python的int()函数(将二进制数转换成ascii码)
题目给了一个压缩包,解压后里面包含103张图片,都是只有黑色或者白色:
一开始以为是要拼接图片,说不定是个二维码,后来……失败。看了题解说这个黑白很容易联想到二进制????(dbq是我太菜了)
脚本如下:
white = open('C:/Users/cherish/Desktop/gif/gif/0.jpg', 'rb').read()
black = open('C:/Users/cherish/Desktop/gif/gif/1.jpg', 'rb').read()
#print(white)
flag = ''
for i in range(104):
#path = "'C:/Users/cherish/Desktop/gif/gif/" + str(i) + ".jpg', 'rb'"
color = open('C:/Users/cherish/Desktop/gif/gif/%d.jpg'%i, 'rb').read()
if(color == white):
flag += '0'
else:
flag += '1'
ans = ''
length = len(flag)//8
for i in range(length):
ans += chr(int(flag[i*8: (i+1)*8], 2))
print(ans)
int函数的用法
int(num, base) 其中base指明的几进制
>>>int() # 不传入参数时,得到结果0
0
>>> int(3)
3
>>> int(3.6)
3
>>> int('12',16) # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制
18
>>> int('0xa',16)
10
>>> int('10',8)
8