Python DES加密奇怪的行为

时间:2017-03-19 06:00:12

标签: python encryption pycrypto des

我有一个包含以下文字的文字文件:

message.txt

this is my secret message

我写了一个小的python代码来读取该文件并使用Crypto.Cipher

对其进行编码
from Crypto.Cipher import DES
f = open('message.txt','rb')
text = f.read()
f.close()

iv   = Random.get_random_bytes(8)
des1 = DES.new('01234567', DES.MODE_CFB, iv)

secret = des1.encrypt(text)  
print("Encrypted text: " + secret)   

输出:

  

加密文字:Å..GH.ÿì.Vs~ö。〜.wôÇ.k5â

然后我将输出字符串保存到文本文件中:

w = open('encrypted.txt','wb')
w.write(secret)
w.close()

然后我尝试打开相同的加密文件并将内容解密回原始消息:

d = open('encrypted.txt','rb')
secret = d.read()
d.close()

text = des1.decrypt(secret)
print("decreypted text is: " + text)

输出:

  

解密文本是:óF2â。} 1秘密消息

加密部分工作很奇怪。我的印象是你要么加密会产生完整的原始信息,要么会产生一个难以理解的乱码文本。但是从来没有想到过这两者的混合。

我做错了什么?

*编辑:我编辑了我的问题:我总是读二进制文件并写二进制文件。当我读/写二进制时,半解密输出发生。当我不读二进制时,输出完全是胡言乱语。

0 个答案:

没有答案