最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用JWT的超詳細教程

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

一、JWT的介紹

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

二、JWT的組成

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

1、Header(頭部)

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

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

2、Payload(負載)

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

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

3、Signature(簽名)

簽名的作用是保證JWT的未被篡改。簽名的生成方式是將編碼后的頭部、編碼后的負載、秘密通過指定的算法進行簽名。簽名的作用是保證JWT的發(fā)送者不能抵賴自己發(fā)送的消息,接收者能夠驗證消息的完整性。這里是將前2部分的密文拼接起來,對這2部分進行HS256加密,然后加鹽,最后在對加密后的內(nèi)容用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中的內(nèi)容是我們指定jwt的一個有效時間,有效時間為12個小時

    token = jwt.encode(headers=headers, payload=payload, algorithm='HS256', key='123')  # 對上面內(nèi)容進行加密,這里的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中的內(nèi)容是我們指定jwt的一個有效時間,有效時間為12個小時

    token = jwt.encode(headers=headers, payload=payload, algorithm='HS256', key='123')  # 對上面內(nèi)容進行加密,這里的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)

解密出來的結(jié)果如下圖

總結(jié) 

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

相關(guān)文章

  • Python實現(xiàn)端口流量轉(zhuǎn)發(fā)的示例代碼

    Python實現(xiàn)端口流量轉(zhuǎn)發(fā)的示例代碼

    端口流量轉(zhuǎn)發(fā)(Port Forwarding)是一種網(wǎng)絡(luò)通信技術(shù),用于將特定的網(wǎng)絡(luò)流量從一個端口或網(wǎng)絡(luò)地址轉(zhuǎn)發(fā)到另一個端口或地址,它在網(wǎng)絡(luò)中扮演著一個非常重要的角色,在Python語言中實現(xiàn)端口轉(zhuǎn)發(fā)非常容易,文中有相關(guān)的代碼示例,需要的朋友可以參考下
    2023-11-11
  • Python實現(xiàn)字符串與數(shù)組相互轉(zhuǎn)換功能示例

    Python實現(xiàn)字符串與數(shù)組相互轉(zhuǎn)換功能示例

    這篇文章主要介紹了Python實現(xiàn)字符串與數(shù)組相互轉(zhuǎn)換功能,結(jié)合具體實例形式分析了Python字符串與數(shù)組相關(guān)轉(zhuǎn)換功能的相關(guān)實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2017-09-09
  • Python OpenCV之常用濾波器使用詳解

    Python OpenCV之常用濾波器使用詳解

    OpenCV中常用的幾種濾波器有:均值濾波器、中值濾波器、高斯濾波器、雙邊濾波器,本文將通過示例詳細講解這幾種濾波器的使用,需要的可以參考一下
    2022-04-04
  • python從入門到精通(DAY 2)

    python從入門到精通(DAY 2)

    本文是python從入門到精通系列文章的第二篇,主要給大家簡單講解下Python的字典復(fù)制和內(nèi)置函數(shù),非常簡單實用,需要的小伙伴可以參考下
    2015-12-12
  • PyautoGui常用教程(一篇掌握)

    PyautoGui常用教程(一篇掌握)

    這篇文章主要介紹了PyautoGui常用教程(一篇掌握),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 利用Python求解阿基米德分牛問題

    利用Python求解阿基米德分牛問題

    這篇文章主要為大家詳細介紹了如何利用Python優(yōu)雅地求解阿基米德分牛問題,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-03-03
  • Python制作七夕表白案例分享

    Python制作七夕表白案例分享

    這篇文章主要介紹了Python制作七夕表白案例分享,文章利用Python的基本操作實現(xiàn)七夕表白案例,需要的小伙伴可以參考一下
    2022-08-08
  • pandas如何統(tǒng)計某一列或某一行的缺失值數(shù)目

    pandas如何統(tǒng)計某一列或某一行的缺失值數(shù)目

    這篇文章主要介紹了pandas如何統(tǒng)計某一列或某一行的缺失值數(shù)目,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python語言中的常用容器(集合)示例詳解

    python語言中的常用容器(集合)示例詳解

    Python集合是一種無序且不重復(fù)的數(shù)據(jù)容器,它可以存儲任意類型的對象,包括數(shù)字、字符串、元組等,下面這篇文章主要介紹了python語言中常用容器(集合)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-09-09
  • Python語言描述連續(xù)子數(shù)組的最大和

    Python語言描述連續(xù)子數(shù)組的最大和

    這篇文章主要介紹了Python語言描述連續(xù)子數(shù)組的最大和,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01

最新評論

东山县| 西和县| 巴马| 徐汇区| 方山县| 琼结县| 枝江市| 延庆县| 九江市| 子洲县| 敖汉旗| 天等县| 临西县| 沛县| 大竹县| 称多县| 金乡县| 新巴尔虎右旗| 阿荣旗| 怀化市| 永寿县| 永宁县| 秦皇岛市| 上高县| 达日县| 英吉沙县| 竹山县| 罗平县| 高陵县| 韩城市| 五家渠市| 龙南县| 荆门市| 保康县| 灵山县| 武汉市| 上高县| 新巴尔虎右旗| 石棉县| 伊川县| 团风县|