cipher.jpg
hint:shift+6
先开始看到键盘上的shift+6对应的^键,但是不知道有什么用。
打开图片,发现无法打开。
图片无法打开肯定是头文件有问题,
果然头文件不对。
Jjpg图片的头文件是:FF D8 FF E0 00 10 4A 46 49 46 00 01,用16进制编辑器修改一下
然而还是不能打开:
后来突然想起来老师的提示的^异或,我又把87 8E CB F2 78 46 7E 54 31 10 34 13改成了FF D8 FF E0 00 10 4A 46 49 46 00 01,会不会是根据特定的密钥加密的?用python代码试一下:
源代码:
#所有jpg文件的文件头
jpg = 0xFFD8FFE000104A4649460001
#源文件的文件头
garden = 0x878ECBF278467E5431103413
#异或出的密钥
secretKey = hex(jpg ^ garden)
print(secretKey)
代码运行结果:
发现密钥是8位16进制数:78563412。
接下来重新修改整个图片:
源代码:
#py -3
#coding=utf-8
#以二进制打开图片
f = open('C:/Users/Legends/Desktop/The Garden of sinners.jpg','rb')
#以二进制打开解密后的图片
res = open('C:/Users/Legends/Desktop/cipher.jpg','wb')
i = 1
while i <= 0x6f8c:
# 每读入4字节作异或操作
t = int.from_bytes(f.read(4),byteorder='big') ^ 0x78563412
# 装换成二进制写入图片
res.write(t.to_bytes(4,byteorder='big'))
i += 1
f.close()
res.close()
运行结果:
成功复原图片: