知行合一1 分钟阅读
Python解码base64报错:Incorrect padding
把jwt中的payload数据(jwt中的第二段)解析出来。Python解码base64报错:Incorrect padding,
出现这个错误通常是因为在Base64编码的字符串中,最后几个字符的长度不符合4的倍数导致Python在解码时无法正确识别。可以用('='),表示填充。
解决这个问题的方法有两种:
•
确保你的Base64字符串是正确格式的。如果你有权限修改输入数据,确保在编码时使用了正确的填充。如果数据已经由他人提供,并且无法更改,那么你需要先对数据进行处理,使其符合Base64编码的要求。
•
在解码时手动添加填充。Python的base64模块提供了一个b64decode方法,该方法可以接受一个可选的填充参数。你可以使用这个参数来指定应该添加多少个等号。例如:
import base64
jwt_token = request.headers.get('Authorization')
# 提取和处理填充问题
payload = jwt_token.split(".")[1] + '=' * (4 - len(jwt_token.split(".")[1]) % 4)
# 解码
decoded_payload_bytes = base64.urlsafe_b64decode(payload.encode())
# 转换为字符串
decoded_payload_str = decoded_payload_bytes.decode()
print(decoded_payload_str)有关使用上的问题,欢迎您在底部评论区留言,一起交流~
读者评论
评论会同步写入该文在 Notion 中的页面底部(与正文同页,便于管理)。
暂无评论,欢迎抢沙发。