Reputation: 1157
I would create a python script that decode a Base64 string to an array of byte (or array of Hex values).
The embedded side of my project is a micro controller that creates a base64 string starting from raw byte. The string contains some no-printable characters (for this reason I choose base64 encoding).
On the Pc side I need to decode the the base64 string and recover the original raw bytes.
My script uses python 2.7 and the base64 library:
base64Packet = raw_input('Base64 stream:')
packet = base64.b64decode(base64Packet )
sys.stdout.write("Decoded packet: %s"%packet)
The resulting string is a characters string that contains some not printable char.
Is there a way to decode base64 string to byte (or hex) values?
Thanks in advance!
Upvotes: 21
Views: 45653
Reputation: 2656
You can use bytearray for exactly this. Possibly the binascii module and struct can be helpful, too.
import binascii
import struct
binstr=b"thisisunreadablebytes"
encoded=binascii.b2a_base64(binstr)
print encoded
print binascii.a2b_base64(encoded)
ba=bytearray(binstr)
print list(ba)
print binascii.b2a_hex(binstr)
print struct.unpack("21B",binstr)
Upvotes: 18