首页 > 代码库 > 对文件异或(xor)解密的方法

对文件异或(xor)解密的方法

这里对异或做下简单的解释,异或是一种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}

对文件异或(xor)解密的方法