binascii.Error: Incorrect padding 报错解决

输入的base64编码字符串必须符合base64的padding规则。“当原数据长度不是3的整数倍时, 如果最后剩下两个输入数据,在编码结果后加1个“=”;
如果最后剩下一个输入数据,编码结果后加2个“=”;如果没有剩下任何数据,就什么都不要加,这样才可以保证资料还原的正确性。”

修正的python代码为:
def D_BASE64(origStr):
    #base64 decode should meet the padding rules
    if(len(origStr)%3 == 1):
        origStr += "=="
    elif(len(origStr)%3 == 2):
        origStr += "="

    origStr = bytes(origStr, encoding='utf8')
    dStr = b64decode(origStr).decode()
    print("BASE64 Decode result is: \n" + dStr)
    return dStr


  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
根据提供的引用内容,出现错误"binascii.error: incorrect padding"是因为在进行base64解码时,输入的字符串长度不是4的倍数,或者字符串中包含了非法字符。为了解决这个问题,你可以尝试以下方法: 1. 确保输入的字符串长度是4的倍数,可以通过在字符串末尾添加适当数量的"="字符来实现。例如,如果字符串长度不是4的倍数,可以添加一个或两个"="字符。 2. 检查输入的字符串是否包含非法字符。base64编码只能包含字母、数字、"+"和"/"字符,如果字符串中包含其他字符,会导致解码错误。你可以使用正则表达式或其他方法来检查字符串中是否包含非法字符。 3. 如果以上方法都无法解决问题,可能是因为输入的字符串本身存在问题。你可以尝试使用其他方法或库来进行base64解码,例如使用`base64.b64decode()`方法的替代方法。 以下是一个示例代码,演示了如何解决"binascii.error: incorrect padding"错误: ```python import base64 def base64_decode(encoded_string): # 检查字符串长度是否是4的倍数 if len(encoded_string) % 4 != 0: # 添加适当数量的"="字符 encoded_string += "=" * (4 - len(encoded_string) % 4) try: # 进行base64解码 decoded_string = base64.b64decode(encoded_string) return decoded_string except binascii.Error: # 处理解码错误 return "解码错误:非法字符或字符串长度不正确" # 示例用法 encoded_string = "SGVsbG8gd29ybGQh" decoded_string = base64_decode(encoded_string) print(decoded_string) # 输出:Hello world! ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Blood_Seeker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值