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

时间:2016-08-29 15:26:57

标签: 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)

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

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

提前致谢!

1 个答案:

答案 0 :(得分:7)

您可以使用bytearray来完成此操作。可能binascii模块和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)