Python:使用base64解码bin

2024-04-19 15:27:22 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有一个二进制字符串,比如str = "010100011010101001001101100101100110101",它是其他字符串的base64编码版本,我如何解码这个字符串?在


Tags: 字符串版本编码二进制解码base64str
1条回答
网友
1楼 · 发布于 2024-04-19 15:27:22

如果您的示例字符串实际上是有意义的东西,而不是让这个问题变得相当模糊的东西,那就太好了,但是我将尽我所能,尽可能详细地找出您的意思。在

假设您的实际输入是一个str,如下所示:

s = '101100101010011010000100011000001011010010110000100111000110000'

您可以通过使用base关键字参数将其转换为int来获得十六进制形式

^{pr2}$

然后通过如下格式将其转换回字符串:

>>> h = '%x' % i  # '595342305a584e30'

然后对十六进制字符串使用^{}函数来获取原始字节:

>>> b64 = binascii.a2b_hex(h)  # b'YSB0ZXN0'

如果它是一些有效的base64编码的字节流,那么可以使用^{}来获得实际的字节

>>> r = base64.b64decode(b64)  # b'a test'

要将其转换为字符串,请对其应用正确的编解码器(即使用bytes.encode)。在

最后,如果您想知道我是如何生成该输入的,请将其全部转换为一个单行函数:

>>> '{0:b}'.format(int(binascii.b2a_hex(base64.b64encode(b'a test')), base=16))
'101100101010011010000100011000001011010010110000100111000110000'

相关问题 更多 >