Python 通过利用itsdangerous模块进行数据加密,以便于网络传输
安装
pip install itsdangerous
使用
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer salt='sdaf'#加盐,指定一个盐值,别让别人知道哦,否则就可以解密出来了 t=Serializer(salt,expires_in=600)#过期时间600秒 # ==============如何加密================== res=t.dumps({'username':'yangfan','user_id':1})# 在t中加入传输的数据 token=res.decode()#指定编码格式 print(token) # 得到的数据如下,就是包含数据和盐值的token了,只有在知道盐值的时候才能被解密出来 # eyJhbGciOiJIUzUxMiIsImlhdCI6MTU0MTgxOTcyMCwiZXhwIjoxNTQxODIwMzIwfQ.eyJ1c2VybmFtZSI6InlhbmdmYW4iLCJ1c2VyX2lkIjoxfQ.VjCgry9Sr-4iRsK_MHYThcn_O7js9BERrXzocc7BI1aavC3N3s3e0wWMsvq2-Qp-ol_WNMD23wxiYRrA1kwCbg # ======================加密的数据如何解析================= res=t.loads('eyJhbGciOiJIUzUxMiIsImlhdCI6MTU0MTgxOTcyMCwiZXhwIjoxNTQxODIwMzIwfQ.eyJ1c2VybmFtZSI6InlhbmdmYW4iLCJ1c2VyX2lkIjoxfQ.VjCgry9Sr-4iRsK_MHYThcn_O7js9BERrXzocc7BI1aavC3N3s3e0wWMsvq2-Qp-ol_WNMD23wxiYRrA1kwCbg') print(res) # 返回的数据如下: # {'username': 'yangfan', 'user_id': 1} # 我们试一下将解析的数据改一个字母,或者超过了过期时间 #解密超时会报错 from itsdangerous import SignatureExpired #解密 serializer = Serializer(settings.SECRET_KEY,3600) try: serializer.loads(token) except SignatureExpired as e: return print("解密超时")
参考:https://www.cnblogs.com/haifeima/p/9963103.html
如果本文对你有帮助,欢迎打赏本站