python b64decode不正确的填充

mss*_*ira 3 python base64 python-3.x

我正在通过小型UDP数据包发送文件.(python 3)在服务器上,我将文件分成小块,然后做

packets.append(b64encode(smallPart))
Run Code Online (Sandbox Code Playgroud)

另一方面,我做的恰恰相反

packets.append(b64decode(peice))    
Run Code Online (Sandbox Code Playgroud)

但是,我一直在(除了数据包之外)得到不正确的填充异常

我缺少b64decode的标准尺寸吗?

Mar*_*som 5

Base 64通过将每3个字节编码为4个字节来工作.解码时,需要4个字节并将它们转换回3个字节​​.如果输入中剩余少于3个字节,则输出仍然用'='填充以产生4个字节.如果b64decode的输入不是4个字节的倍数,您将获得异常.

最简单的解决方案是确保您的数据包始终是4个字节的倍数.