我有一些 base64 编码的数据,即使其中存在填充错误,我也想将其转换回二进制。如果我使用
base64.decodestring(b64_string)
它会引发“不正确的填充”错误。还有别的办法吗?
更新:感谢所有反馈。老实说,提到的所有方法听起来都有些碰运气,所以我决定试试 openssl。以下命令起到了一定作用:
openssl enc -d -base64 -in b64string -out binary_data
原文由 FunLovinCoder 发布,翻译遵循 CC BY-SA 4.0 许可协议
看来您只需要在解码之前向字节添加填充即可。关于这个问题还有许多其他答案,但我想指出(至少在 Python 3.x 中)
base64.b64decode
将截断任何额外的填充,前提是首先有足够的填充。所以,类似的东西:
b'abc='
和b'abc=='
一样好用(和b'abc====='
一样)。这意味着您可以添加所需的最大填充字符数——即两个 (
b'=='
)——base64 将截断任何不需要的字符。这让你写:
这比: