攻防世界杂项新手入门 gif

攻防世界杂项新手入门 gif

  • 利用python读取图片
  • python的int()函数(将二进制数转换成ascii码)

  题目给了一个压缩包,解压后里面包含103张图片,都是只有黑色或者白色:
攻防世界杂项新手入门 gif_第1张图片
  一开始以为是要拼接图片,说不定是个二维码,后来……失败。看了题解说这个黑白很容易联想到二进制????(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

你可能感兴趣的:(杂项)