2016-07-07 102 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

相關問題