Python中JWT的簡單生成和驗證

2021-10-08 14:58:52 字數 2123 閱讀 6236

json web token就是jwt的全名,用途比較廣泛的驗證資訊的方式。

jwt的簡介

jwt由三部分構成,分別是頭部(header),載荷(payload),和簽名(signature)。三部分由兩個.分隔。

簽名(signature)是由頭部(header),和載荷(payload)經過加密演算法和秘鑰加密得出,秘鑰不洩露的情況下能判斷出資料是否被修改。

生成token

用到的python模組json,base64,hmac,hashlib

先設定頭部資訊

頭部資訊包括兩部分內容

1、宣告型別,這裡是jwt

2、宣告加密的演算法 通常直接使用 hmac sha256

header =

將字典型別的頭部使用json模組轉成json字串型別,並且編碼成位元組型別檔案,再用base64編碼,然後解碼後得到字串就是token的第一部分

和頭部的過程一樣生成token的第二部分

利用hmac提供的new方法生成乙個物件,得到加密後的簽名,先導包,然後help(hmac.new)就可以檢視hmac的函式說明。

第乙個引數就是秘鑰的位元組型別,就是乙個字串然後轉成位元組型別

secret = 'suibianxie'

第二個引數就是頭部和載荷拼起來後轉成位元組型別

message = header + '.' + payload

第三個就是加密的演算法了,常用sha256演算法

驗證token是否被修改

假設接收到傳過來的token

首先是將token拆分成兩個部分

message, old_signature = token.rsplit('.', maxsplit=1)

利用簽發token時用的秘鑰,將接收到的token的頭部和載荷生成新的簽名new_signature,和接受的的token的第三部分old_signature進行比對,若一致,則表示資訊沒有被需改。

這些只是簡單的生成和驗證token,想要理解更加透徹和用的更加熟練,那就需要自己好好去琢磨。

JWT在node中的簡單應用

json web token 縮寫 jwt 是目前最流行的跨域認證解決方案。是為了在網路應用環境間傳遞宣告而執行的一種基於json的開放標準 rfc 7519 該token被設計為緊湊且安全的,特別適用於分布式站點的單點登入 sso 場景。secreate key 是我們儲存再服務端服務端的隨機字串...

JWT簡單的許可權驗證

理解了claim,claimsidentity,claimsprincipal這三個概念,就能理解生成登入cookie為什麼要用下面的 var claimsidentity newclaimsidentity new claim basic var claimsprincipal newclaims...

jwt的應用生成token,redis做儲存

jwt就是乙個字串,經過加密處理與校驗處理的字串,由三個部分組成。基於token的身份驗證可以替代傳統的cookie session身份驗證方法。三個部分分別如下 header.payload.signature header部分組成 header 格式為 這就是乙個json串,兩個欄位都是必須的,...