将Base64字符串解码为字节数组

Fed*_*ico 10 python string embedded base64 decode

我将创建一个python脚本,将Base64字符串解码为byte(或Hex值数组)数组.

我的项目的嵌入式一面是一个微控制器,它从原始字节开始创建一个base64字符串.该字符串包含一些不可打印的字符(因此我选择base64编码).

在Pc端,我需要解码base64字符串并恢复原始的原始字节.

我的脚本使用python 2.7和base64库:

base64Packet = raw_input('Base64 stream:')

packet = base64.b64decode(base64Packet )

sys.stdout.write("Decoded packet: %s"%packet)
Run Code Online (Sandbox Code Playgroud)

结果字符串是一个字符串,其中包含一些不可打印的char.

有没有办法将base64字符串解码为字节(或十六进制)值?

提前致谢!

jan*_*ohl 8

您可以使用bytearray来实现这一点.可能binascii模块和结构也可能有用.

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)
Run Code Online (Sandbox Code Playgroud)