首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jwt.exceptions.DecodeError:无效的加密填充

jwt.exceptions.DecodeError:无效的加密填充
EN

Stack Overflow用户
提问于 2021-07-27 21:10:29
回答 1查看 194关注 0票数 0

我正在尝试解码一个简单的jwt

代码语言:javascript
复制
eyJraWQiOiJlWGF1bm1MIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLm1kbC5lbnRlcmN5IiwiZXhwIjoxNjI3MzgyMTI3LCJpYXQiOjE2MjcyOTU3MjcsInN1YiI6IjAwMTUxMC5hNjQ0MzcyOWE3OTU0ZmQyYTE2NjcyN2NjODY0ZDUyZi4wODI4IiwiY19oYXNoIjoiVl9yUG1Db1Vab0lmejlJQW9WcEFNZyIsImVtYWlsIjoiZnJlZGVyaWNrLm1kbEBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6InRydWUiLCJhdXRoX3RpbWUiOjE2MjcyOTU3MjcsIm5vbmNlX3N1cHBvcnRlZCI6dHJ1ZX0.DDc3G6jJbsLXYX_F3GQ851mEukVDAMvySDPWwWfsmQOmi8w_ItCUaMwSMp0djzzFy3dLpF2cMp67n

我在下面的链接中成功地解码了它,你可以在这里检查它https://jwt.io/

但是当我尝试使用python时,我没有success.Here是我的代码

代码语言:javascript
复制
import jwt



def main(args):
  

      encoded_jwt = "eyJraWQiOiJlWGF1bm1MIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLm1kbC5lbnRlcmN5IiwiZXhwIjoxNjI3MzgyMTI3LCJpYXQiOjE2MjcyOTU3MjcsInN1YiI6IjAwMTUxMC5hNjQ0MzcyOWE3OTU0ZmQyYTE2NjcyN2NjODY0ZDUyZi4wODI4IiwiY19oYXNoIjoiVl9yUG1Db1Vab0lmejlJQW9WcEFNZyIsImVtYWlsIjoiZnJlZGVyaWNrLm1kbEBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6InRydWUiLCJhdXRoX3RpbWUiOjE2MjcyOTU3MjcsIm5vbmNlX3N1cHBvcnRlZCI6dHJ1ZX0.DDc3G6jJbsLXYX_F3GQ851mEukVDAMvySDPWwWfsmQOmi8w_ItCUaMwSMp0djzzFy3dLpF2cMp67n"
        val=jwt.decode(encoded_jwt, options={"verify_signature": False})
        print(val)
        return;
    
    if __name__ == '__main__':
        main(0)

下面是我得到的错误

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\Users\User\PycharmProjects\jwt\venv\lib\site-packages\jwt\api_jws.py", line 211, in _load
    signature = base64url_decode(crypto_segment)
  File "C:\Users\User\PycharmProjects\jwt\venv\lib\site-packages\jwt\utils.py", line 33, in base64url_decode
    return base64.urlsafe_b64decode(input)
  File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\base64.py", line 133, in urlsafe_b64decode
    return b64decode(s)
  File "C:\Users\User\AppData\Local\Programs\Python\Python38\lib\base64.py", line 87, in b64decode
    return binascii.a2b_base64(s)
binascii.Error: Invalid base64-encoded string: number of data characters (77) cannot be 1 more than a multiple of 4

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\User\PycharmProjects\jwt\jwts.py", line 13, in <module>
    main(3)
  File "C:\Users\User\PycharmProjects\jwt\jwts.py", line 8, in main
    val=jwt.decode(encoded_jwt, options={"verify_signature": False})
  File "C:\Users\User\PycharmProjects\jwt\venv\lib\site-packages\jwt\api_jwt.py", line 119, in decode
    decoded = self.decode_complete(jwt, key, algorithms, options, **kwargs)
  File "C:\Users\User\PycharmProjects\jwt\venv\lib\site-packages\jwt\api_jwt.py", line 90, in decode_complete
    decoded = api_jws.decode_complete(
  File "C:\Users\User\PycharmProjects\jwt\venv\lib\site-packages\jwt\api_jws.py", line 146, in decode_complete
    payload, signing_input, header, signature = self._load(jwt)
  File "C:\Users\User\PycharmProjects\jwt\venv\lib\site-packages\jwt\api_jws.py", line 213, in _load
    raise DecodeError("Invalid crypto padding") from err
jwt.exceptions.DecodeError: Invalid crypto padding
EN

回答 1

Stack Overflow用户

发布于 2021-08-28 15:59:32

当您编码您的解码令牌https://jwt.io/网站第一次令牌以("")这你会看到两个警告,因为(“")这。在此之后,不使用(“”)则不再显示警告。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68545478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档