2016-07-07 76 views
0

我正在实现一个XOR方法,并且我想将加密的消息写入一个txt文件,但按照我这样做的方式,我得到的是奇怪的字符而不是消息。如何在python中写入一个txt文件ascii字符?

下面是代码:

from itertools import cycle 

msg = 'RUNNINGFAST' 
key = 'SADSTORY' 

cipher = ''.join(chr(ord(c)^ord(k)) for c,k in zip(msg, cycle(key))) 

print('%s^%s = %s ' % (msg, key, cipher)) 
msg = ''.join(chr(ord(c)^ord(k)) for c,k in zip(cipher, cycle(key))) 
print('%s^%s = %s ' % (cipher, key, msg)) 

with open("XOR - Msg_Cipher.txt", "w",) as text_file: 
    text_file.write("msg: %s \nCipher: %s" % (msg, cipher)) 

输出看起来是这样的:

enter image description here

txt文件看起来是这样的:

enter image description here

我怎么能得到txt内的输出文件?

感谢您的帮助

+0

*是输出。它主要由不可打印的字符组成。 – duskwuff

回答

0

我认为你需要使用其他文本编辑器。 Windows'记事本不能正确呈现控制字符。

尝试使用程序员记事本或记事本++为例。

+0

谢谢,就是这样,当我用记事本++打开txt文件时,我得到了所有的输出。 –

1

您实际上正在获取文本文件中的所有输出。 “问题”是你的密码正在使用所有ASCII字符的全部范围,其中包括一些不可打印的字符。

例如,SOH是“标题的开始”符号,其实不具有任何可视性。

ASCII chart

相关问题