Python使用PyJWT實現JSON Web Tokens加密解密

      網友投稿 1217 2022-05-30

      Python:使用PyJWT實現JSON Web Tokens加密解密

      科普

      JSON Web Token 入門教程

      Json Web Token JWT三部分組成:

      (1)Header

      (2)Payload

      (3)Signature

      Header.Payload.Signature

      1

      Base64URL 算法:

      Base64 有三個字符+、/和=,在 URL 里面有特殊含義,

      所以要被替換掉:=被省略、+替換成-,/替換成_

      代碼實現

      github:https://github.com/jpadilla/pyjwt/

      文檔:https://pyjwt.readthedocs.io/en/latest/index.html

      安裝

      pip install PyJWT

      1

      復制jwt網站的數據進行加解密測試

      https://jwt.io/

      代碼示例

      # -*- coding: utf-8 -*- import jwt data = { "sub": "1234567890", "name": "John Doe", "iat": 1516239022 } # 加密 py3加密后是字節型數據 encoded = jwt.encode(data, 'secret', algorithm='HS256') print(encoded.decode()) # eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9. # eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ. # DzMJlzRbt6kdh1Kbbqv8SA8QsddwfSoM1bqw41tQY2k print(jwt.decode(encoded, 'secret', algorithms=['HS256'])) # {'sub': '1234567890', 'name': 'John Doe', 'iat': 1516239022}

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      增加過期時間,Python3代碼示例

      # -*- coding: utf-8 -*- import time from datetime import datetime, timedelta import jwt class JwtUtil(object): def __init__(self, key): self.key = key def encode(self, payload, expires=7): """ 獲取token :param payload: dict :param expires: 過期時間:天 :return: str """ # 使用utc時間 payload['exp'] = datetime.utcnow() + timedelta(days=expires) return jwt.encode(payload=payload, key=self.key).decode() def decode(self, token): """ 驗證并解析token :param token: str :return: dict """ return jwt.decode(jwt=token, key=self.key)

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      JSON Python web前端

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:微信短網址在線生成 推薦幾個可在在線生成微信短網址的平臺
      下一篇:Python:kazoo模塊與Zookeeper交互
      相關文章
      亚洲中文字幕在线无码一区二区| 亚洲AV无码成人精品区在线观看 | 亚洲国产精品无码AAA片| 亚洲精品国产高清嫩草影院| 色噜噜噜噜亚洲第一| 77777亚洲午夜久久多喷| 亚洲性线免费观看视频成熟| 亚洲一区二区三区四区视频| 亚洲youjizz| 亚洲熟妇无码av另类vr影视| 亚洲精品自偷自拍无码| 亚洲人成人伊人成综合网无码| 亚洲精品国产第一综合99久久| 亚洲AV无码资源在线观看| 亚洲国产aⅴ成人精品无吗| 亚洲日产乱码一二三区别| 亚洲欧美成人一区二区三区| 亚洲国产精品ⅴa在线观看| 亚洲av无码一区二区三区在线播放| 亚洲第一成年免费网站| 最新亚洲人成无码网www电影| 国产亚洲精品2021自在线| 亚洲精品无码永久在线观看| 毛茸茸bbw亚洲人| 亚洲AV无码专区在线播放中文| 亚洲第一成年男人的天堂| 2022年亚洲午夜一区二区福利| 亚洲国产品综合人成综合网站| 亚洲无mate20pro麻豆| 在线观看亚洲网站| 亚洲精品无码成人片在线观看| 自拍偷自拍亚洲精品被多人伦好爽 | 亚洲AV中文无码乱人伦| 国产精品亚洲玖玖玖在线观看| 亚洲色自偷自拍另类小说| 亚洲免费在线视频| 亚洲成在人线电影天堂色| 亚洲最大中文字幕无码网站| 无码色偷偷亚洲国内自拍| 国产亚洲av人片在线观看| 亚洲va久久久噜噜噜久久天堂|