亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python使用JWT的超詳細教程

 更新時間:2024年10月17日 11:34:02   作者:黃小耶@  
這篇文章主要介紹了Python使用JWT的相關資料,JWT(JSON?Web?Tokens)是一種網(wǎng)絡應用間傳輸信息的標準,包括三部分:Header(頭部),Payload(負載),Signature(簽名),頭部包含聲明類型和算法,需要的朋友可以參考下

一、JWT的介紹

JWT(JSON Web Tokens)是一種用于在網(wǎng)絡應用環(huán)境間安全地傳輸信息的簡潔的、URL安全的令牌標準。JWT的聲明一般被用來在身份提供者和服務提供者間傳遞被認證的用戶身份信息,以便于從資源服務器獲取資源,也可以增加一些額外的其它業(yè)務邏輯所必須的聲明信息,該token也可直接被用于認證,也可被加密。

二、JWT的組成

JWT的結構分為三部分,它是用點來分割的,Header(頭部),Payload(負載),Signature(簽名)。如下圖

1、Header(頭部)

頭部通常包含了兩部分信息:聲明類型和使用什么算法,第一部分就是將json轉化為字符串,然后用Base64加密,如下格式

{
   "alg":"HS256",
   "type":"jwt"
}

2、Payload(負載)

負載里面通常就是我們要傳遞給前端的值,如用戶的一些信息啊,也是將json轉換為字符串,然后用Base64加密,如下格式

{
    "id":"123",
    "username":"xiaoming"
}

3、Signature(簽名)

簽名的作用是保證JWT的未被篡改。簽名的生成方式是將編碼后的頭部、編碼后的負載、秘密通過指定的算法進行簽名。簽名的作用是保證JWT的發(fā)送者不能抵賴自己發(fā)送的消息,接收者能夠驗證消息的完整性。這里是將前2部分的密文拼接起來,對這2部分進行HS256加密,然后加鹽,最后在對加密后的內容用Base64加密一次

三、Python寫JWT

1、安裝Jwt

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple PyJWT

2、使用JWT

import datetime
import jwt

def create_jwt():
    headers = {
        'alg': 'HS256',
        'typ': 'JWT'
    }  # jwt的頭部,包含了類型和算法的指定

    payload = {
        "id": 123,
        "username": '小明',
        'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=12),
    }  # jwt的負載,都是一些自定義值,其中exp中的內容是我們指定jwt的一個有效時間,有效時間為12個小時

    token = jwt.encode(headers=headers, payload=payload, algorithm='HS256', key='123')  # 對上面內容進行加密,這里的key就是加的鹽
    print(token)

if __name__ == '__main__':
    create_jwt()

3、解密JWT

import datetime

import jwt

def create_jwt():
    headers = {
        'alg': 'HS256',
        'typ': 'JWT'
    }  # jwt的頭部,包含了類型和算法的指定

    payload = {
        "id": 123,
        "username": '小明',
        'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=12),
    }  # jwt的負載,都是一些自定義值,其中exp中的內容是我們指定jwt的一個有效時間,有效時間為12個小時

    token = jwt.encode(headers=headers, payload=payload, algorithm='HS256', key='123')  # 對上面內容進行加密,這里的key就是加的鹽,是自定義的,我們在使用鹽的時候一般是唯一的一個值
    print(token)
    return token

def decode_JWT(token):
    content = jwt.decode(jwt=token, key='123', algorithms=['HS256'])  # 對jwt進行解密,這里用的key必須和上面用的key一樣,否則是無法解密出來的
    print(content)

if __name__ == '__main__':
    token = create_jwt()
    decode_JWT(token)

解密出來的結果如下圖

總結 

到此這篇關于Python使用JWT的文章就介紹到這了,更多相關Python使用JWT內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Django choices下拉列表綁定實例

    Django choices下拉列表綁定實例

    這篇文章主要介紹了Django choices下拉列表綁定實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 淺談python中的getattr函數(shù) hasattr函數(shù)

    淺談python中的getattr函數(shù) hasattr函數(shù)

    下面小編就為大家?guī)硪黄獪\談python中的getattr函數(shù) hasattr函數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • Python mutiprocessing多線程池pool操作示例

    Python mutiprocessing多線程池pool操作示例

    這篇文章主要介紹了Python mutiprocessing多線程池pool操作,結合實例形式分析了Python多線程模塊multiprocessing進程池相關操作技巧,需要的朋友可以參考下
    2019-01-01
  • 非常詳細的Django連接mysql數(shù)據(jù)庫步驟記錄

    非常詳細的Django連接mysql數(shù)據(jù)庫步驟記錄

    我的Mysql中已經(jīng)有了項目需要使用的相關數(shù)據(jù)庫,現(xiàn)在需要通過django來獲取Mysql里的數(shù)據(jù)并使用,下面這篇文章主要給大家介紹了關于非常詳細的Django連接mysql數(shù)據(jù)庫步驟,需要的朋友可以參考下
    2022-10-10
  • Python字符串格式化之使用format()方法

    Python字符串格式化之使用format()方法

    這篇文章主要介紹了Python字符串格式化之使用format()方法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Python格式化字符串的四種常見方式

    Python格式化字符串的四種常見方式

    在 Python 編程中,格式化字符串是一項常見且重要的任務,Python 提供了多種格式化字符串的方式,每種方式都有其特點和適用場景,本文將詳細介紹 Python 中格式化字符串的 4 種常見方式,需要的朋友可以參考下
    2025-04-04
  • 超詳細Python解釋器新手安裝教程

    超詳細Python解釋器新手安裝教程

    這篇文章主要介紹了超詳細Python解釋器新手安裝教程,文中有非常詳細的圖文示例,對不會安裝python解釋器的小伙伴們很有幫助喲,需要的朋友可以參考下
    2021-05-05
  • pytest官方文檔解讀fixtures的autouse

    pytest官方文檔解讀fixtures的autouse

    這篇文章主要為大家介紹了pytest官方文檔解讀fixtures的autouse,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • sqlalchemy實現(xiàn)時間列自動更新教程

    sqlalchemy實現(xiàn)時間列自動更新教程

    這篇文章主要介紹了sqlalchemy實現(xiàn)時間列自動更新教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • python中調試或排錯的五種方法示例

    python中調試或排錯的五種方法示例

    這篇文章主要給大家介紹了關于python中調試或排錯的五種方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09

最新評論