在Python Base64解码中处理不正确的填充
在Python中使用base64.decodestring()解码base64编码的数据时,你可能会遇到“填充不正确”错误。要绕过这个问题,您可以考虑几种方法。
1。添加填充
根据接受的答案中的建议,您可以在解码之前简单地添加最大可能的填充字符。在 Python 3.x 中,base64.b64decode() 将自动截断任何额外的填充,使这是一个简单而有效的解决方案。
base64.b64decode(s b'==')
2.使用替代解码器
另一种方法是使用忽略填充问题的不同解码器。例如,binascii 模块中的decodestring() 方法允许不正确的填充:
import binascii
binascii.decodestring(b64_string)
3.忽略验证
使用 base64.b64decode() 进行解码时,可以将 validate 参数设置为 False 以忽略验证错误,包括不正确的填充。如果您对编码数据的完整性有信心,建议使用此方法。
base64.b64decode(s, validate=False)
4。使用Openssl
外部工具openssl提供了一种可靠的方法来解码base64数据,即使填充不正确。您可以按如下方式使用 enc 命令:
openssl enc -d -base64 -in b64string -out binary_data
注意: 考虑正确很重要基于具体要求和编码数据完整性的方法。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3