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
如果本文对你有帮助,欢迎打赏本站

支付宝扫码打赏
微信扫码打赏
