Кодирование/декодирование EXE-файла в base64 на Python

#python #python-3.x

Вопрос:

Я думаю, что кодирование довольно простое, у меня есть сценарий здесь:

 import base64

fr = open("test.exe", 'rb')

while True:
    piece = fr.read(75232000)
    if not piece:
        break
    fw = open('testoutput.txt', 'wb')
    fw.write(base64.b64encode(piece))
    fw.close()
fr.close()
 

И для расшифровки у меня есть это:

 import base64

decoded_string = base64.b64decode("string")
with open("testoutput1.exe", "w") as exe:
    exe.write(str(decoded_string))
 

Но результат декодированного файла не работает

Комментарии:

1. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы точно указать, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.

Ответ №1:

Прежде всего, при сохранении закодированной версии не открывайте файл «.txt» в двоичном режиме: это строковое представление.

Затем просто прочитайте закодированный файл

 ft = open('testoutput.txt', 'r')
encoded = ft.read()
 

А затем напишите его в конечный пункт назначения

 with open("testoutput1.exe", "wb") as exe:
    exe.write(base64.b64decode(encoded))
 

Примечание: на этот раз вы должны открыть файл для записи в двоичном режиме ( "wb" ); и вы не хотите конвертировать содержимое в строку с str() помощью .