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 通过截图匹配原图中的位置(opencv)实例

Python 通过截图匹配原图中的位置(opencv)实例

安装依赖 1)下载安装opencv-2.4.9,并将cv2.pyd拷贝到python安装目录的site-package下 2)pip install numpy 3)pip instal...

详解python基础之while循环及if判断

 wlile循环   while True表示永远为真,不管是什么条件都会向下执行,下面是写的一个例子。 #!/usr/bin/env python age = 24        ...

Python中文编码知识点

Python中文编码知识点

如何用 Python 输出 "Hello, World!",英文没有问题,但是如果你输出中文字符"你好,世界"就有可能会碰到中文编码问题。 Python 文件中如果未指定编码,在执行过程...

详解python string类型 bytes类型 bytearray类型

 一、python3对文本和二进制数据做了区分。文本是Unicode编码,str类型,用于显示。二进制类型是bytes类型,用于存储和传输。bytes是byte的序列,而str...

pandas.dataframe中根据条件获取元素所在的位置方法(索引)

在dataframe中根据一定的条件,得到符合要求的某行元素所在的位置。 代码如下所示: df = pd.DataFrame({'BoolCol': [1, 2, 3, 3, 4],...