Python 利用itsdangerous模块进行数据加密

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

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

如果本文对你有帮助,欢迎打赏本站

喜欢 ()or分享
    匿名评论
  • 评论
人参与,条评论