ltsdangerous加密解密

2022-07-03 21:21:11 字數 1179 閱讀 8964

在做qq第三方登入時,使用者跳轉到qq登入介面登入成功後,會在url返回乙個code引數。前端把code傳送給後端。後端收到後,會查詢出openid。然後判斷openid是否存在,如果存在就可以繫結使用者或新建使用者。如果不存在,進把openid返回給前端。前端填完註冊資訊後,把openid、手機號碼、使用者名稱、密碼等引數再傳送給後端處理。

這時候,openid因為先傳回去給前端,再傳回來給後端。所以中間涉及了安全問題。萬一別人篡改了openid呢?所以需要對openid進行加密!這時候就用到了ltsdangerous模組。

(1)安裝

pip install itsdangerous

(2)使用

timedjsonwebsignatureserializer 可以生成帶有效期的加密資料

格式:timedjsonwebsignatureserializer([秘鑰], [有效期])

- 簽名(加密): dumps(dict)            返回bytes型別資料

- 驗籤(解密): loads(str)                返回字典

- 可以確保資料沒有被篡改

- 資料會過期

- 解密出錯異常

- baddata 父類

- signatureexpired:  簽名過期

- badsignature:  要解密的資料被篡改 

示例:

加密

a = timedjsonwebsignatureserializer("

h8329hrjkewhf89sdy*()&

",60*60)

#b是加密後的字串

b = a.dumps().decode()

解密

#

c是字典

c =a.loads(b)

#如果簽名過期,拋異常signatureexpired

#如果資料被篡改過,拋異常badsignature

vue js Angularjs AES加密解密

需要兩個js檔案。aes.js和mode ecb.js 以angular為例,現在www目錄下的index.html檔案中引入這兩個js檔案 加密相關 build lib cryptojslib rollups aes.js script build lib cryptojslib componen...

PHP檔案加密解

公鑰加密 param string 明文 param string 證書檔案 crt return string 密文 base64編碼 function publickey encodeing sourcestr,filename 私鑰解密 param string 密文 二進位制格式且base6...

mysql des mysql中DES加密解密

des decrypt crypt str key str 使用des encrypt 加密乙個字串。若出現錯誤,這個函式會返回 null。注意,這個函式只有當mysql在ssl 的支援下配置完畢時才會運作。請參見5.8.7節,使用安全連線 假如沒有給定 key str 引數,des decrypt...