Decode Base64 string to byte array

自作多情 提交于 2019-12-06 20:16:29

问题


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!


回答1:


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)


来源:https://stackoverflow.com/questions/39209872/decode-base64-string-to-byte-array

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!