gpt4 book ai didi

Python:base64解码时忽略 'Incorrect padding'错误

转载 作者:IT老高 更新时间:2023-10-28 21:10:56 24 4
gpt4 key购买 nike

我有一些经过 base64 编码的数据,即使其中存在填充错误,我也想将其转换回二进制。如果我使用

base64.decodestring(b64_string)

它会引发“不正确的填充”错误。还有其他方法吗?

更新:感谢所有反馈。老实说,所有提到的方法听起来都有点打击错过了所以我决定尝试openssl。以下命令很有效:

openssl enc -d -base64 -in b64string -out binary_data

最佳答案

看来您只需要在解码之前为字节添加填充即可。关于这个问题还有很多其他答案,但我想指出(至少在 Python 3.x 中)base64.b64decode 将截断任何额外的填充,前提是首先有足够的填充。

所以,像这样的东西: b'abc='b'abc==' 一样好用(就像 b'abc=== ==')。

这意味着您可以添加所需的最大填充字符数(即两个 (b'==')),base64 将截断任何不必要的填充字符。

这可以让你写:

base64.b64decode(s + b'==')

这比:

base64.b64decode(s + b'=' * (-len(s) % 4))

关于Python:base64解码时忽略 'Incorrect padding'错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2941995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com