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

Decode Base64 string to byte array

我会创建一个 python 脚本,将 Base64 字符串解码为字节数组(或十六进制值数组)。

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

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

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

base64Packet = raw_input('Base64 stream:')

packet = base64.b64decode(base64Packet )

sys.stdout.write("Decoded packet: %s"%packet)

生成的字符串是一个包含一些不可打印字符的字符串。

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

提前致谢!

您可以使用bytearray for exactly this. Possibly the binascii module and struct 可以有所帮助,给。

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)