2016-07-07 4 views
0

Я реализую XOR-метод, и я хочу записать зашифрованное сообщение в txt-файл, но, как я это делаю, я получаю странные символы вместо сообщения.Как написать в txt файл ascii символов в python?

Вот код:

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-файл с помощью notepad ++, я получаю весь вывод. –

1

Вы фактически получаете весь вывод в текстовом файле. «Проблема» заключается в том, что ваш шифр использует весь диапазон всех символов ASCII, который включает некоторые непечатаемые символы.

Пример: SOH - символ «начала заголовка», что на самом деле ничего не значит визуально.

ASCII chart

Смежные вопросы