这里对异或做下简单的解释,异或是一种2进制的运算,这里举个简单的例子
1^1=0
1^0=1
两者相同则为0,不同则为1
a的二进制是01100001
b的二进制是01100010
逐位比较得到00000011,然后转为十进制就是3,则a^b=3
下面以实验吧的一道题目为例
下载压缩包得到两个txt文件,其中一个是密文,另外一个是明文,根据题目提示可以想到是文件异或
密文和明文的内容如下
所以我们对它们进行异或
python代码如下
# -*- coding: cp936 -*-
a=open(‘密文.txt‘,‘r‘).read()
b=open(‘明文.txt‘,‘r‘).read()
xor=‘‘
for i in range(0,len(a)):
aa = ord(list(a)[i])^ord(list(b)[i])
xor += chr(aa)
print xor
我们跑一下得到:flag:nctf{xor_xor_xor_biubiubiu}
时间: 2024-10-06 07:15:21