python base64 decode incorrect padding错误解决方法

yipeiwu_com7年前Python基础

python的base64.decodestring方法做base64解码时报错:

复制代码 代码如下:

Traceback (most recent call last):
  File "/export/www/outofmemory.cn/controllers/user.py", line 136, in decryptPassword
    encryptPwd = base64.b64decode(encryptPwd)
  File "/usr/lib/python2.7/base64.py", line 76, in b64decode
    raise TypeError(msg)
TypeError: Incorrect padding

这也算是python的一个坑吧,解决此问题的方法很简单,对base64解码的string补齐等号就可以了,如下代码:
复制代码 代码如下:

        def decode_base64(data):
            """Decode base64, padding being optional.

            :param data: Base64 data as an ASCII byte string
            :returns: The decoded byte string.

            """
            missing_padding = 4 - len(data) % 4
            if missing_padding:
                data += b'='* missing_padding
            return base64.decodestring(data)

相关文章

Python使用文件锁实现进程间同步功能【基于fcntl模块】

本文实例讲述了Python使用文件锁实现进程间同步功能。分享给大家供大家参考,具体如下: 简介 在实际应用中,会出现这种应用场景:希望shell下执行的脚本对某些竞争资源提供保护,避免出...

python中的json总结

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,...

Python单元和文档测试实例详解

本文实例讲述了Python单元和文档测试。分享给大家供大家参考,具体如下: 单元和文档测试 1、单元测试 单元测试就是用来对一个模块、一个函数或者一个类来进行正确性的检测工作。 1.若...

python3.5安装python3-tk详解

python3.5安装python3-tk详解

 在python3.5下安装好matplotlib后,准备显示一张图片测试一下,但是控制台报错说需要安装python3-tk,我天真的以为直接: sudo apt-get i...

python 设置xlabel,ylabel 坐标轴字体大小,字体类型

本文介绍了python 设置xlabel,ylabel 坐标轴字体大小,字体类型,分享给大家,具体如下: #--coding:utf-8-- import matplotlib.p...