1. 程式人生 > >對文件異或(xor)解密的方法

對文件異或(xor)解密的方法

log 題目 txt文件 比較 ubi 二進制 python print Coding

這裏對異或做下簡單的解釋,異或是一種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)解密的方法