Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Write decoded from base64 string to file

Tags:

python

base64

the question is that how to write string decoded from base64 to a file? I use next piece of code:

import base64

input_file = open('Input.txt', 'r')
coded_string = input_file.read()
decoded = base64.b64decode(coded_string)
output_file = open('Output.txt', 'w')
output_file.write(decoded)
output_file.close()

Input.txt contains base64 string (smth. like PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cmV2aW). After script execution I suppose to see xml in Output.txt but output file contains some wrong symbols (like <?xml version="1.0" encoding="UTF-8"?><review-case create®vFFSТ#2). At the same time if I not read from base64 string from file Input.txt but specify it in script as coded_string = '''PD94bWwgdmVyc2lvbj0iMS4wIiBlbm...''' then Output.txt contains correct xml. Is this something wrong with utf encoding? How to fix this? I use Python2.7 on Windows 7. Thanks in advance.

like image 777
olyv Avatar asked Mar 14 '14 10:03

olyv


People also ask

How do I decode a Base64 encoded file?

To decode a file with contents that are base64 encoded, you simply provide the path of the file with the --decode flag. As with encoding files, the output will be a very long string of the original file. You may want to output stdout directly to a file.

How do I convert Base64 to Notepad ++?

To encode or decode Base64 data you need to first highlight the entire range of data you want to be encoded or decoded. Next, click on “Plugins” in the top bar, then “MIME Tools”. In the second level of the menu you can see all of the Base64 encode and decode options.

Can we decrypt Base64?

Base64 is an encoding, the strings you've posted are encoded. You can DECODE the base64 values into bytes (so just a sequence of bits). And from there, you need to know what these bytes represent and what original encoding they were represented in, if you wish to convert them again to a legible format.


1 Answers

You probably figured out of to do that now 5 years later, but here is the solution if anyone needs it.

import base64

with open('Input.txt', 'r') as input_file:
  coded_string = input_file.read()
decoded = base64.b64decode(coded_string)
with open('Output.txt', 'w', encoding="utf-8") as output_file:
  output_file.write(decoded.decode("utf-8"))
like image 144
JPelletier Avatar answered Oct 01 '22 19:10

JPelletier