【愚公系列】2022年01月 Python教学课程 54-itsdangerous加解密库的使用
【摘要】 前言JWS 也就是 Json Web Signature,是构造 JWT 的基础结构(JWT 其实涵盖了 JWS 和 JWE 两类,其中 JWT 的载荷还可以是嵌套的 JWT),包括三部分 JOSE Header、JWS Payload、JWS Signature。 一、itsdangerous是什么?itsdangerous内部默认使用了HMAC和SHA1来签名,基于 Django 签名...
前言
JWS 也就是 Json Web Signature,是构造 JWT 的基础结构(JWT 其实涵盖了 JWS 和 JWE 两类,其中 JWT 的载荷还可以是嵌套的 JWT),包括三部分 JOSE Header、JWS Payload、JWS Signature。
一、itsdangerous是什么?
itsdangerous内部默认使用了HMAC和SHA1来签名,基于 Django 签名模块。它也支持JSON Web 签名 (JWS)。这个库采用BSD协议,由Armin Ronacher编写,而大部分设计与实现的版权归Simon Willison和其他的把这个库变为现实的Django爱好者们。
二、使用步骤
1.安装
pip install itsdangerous
2.加密
######################itsdangerous的使用 加密########################################
# 1.导入
from meiduo_mall import settings
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
#2.创建实例对象
s = Serializer(secret_key=settings.SECRET_KEY,expires_in=3600)
#3.组织要加密的数据
data = {
'openid':'1234'
}
#4.加密
mdata=s.dumps(data).decode()
#b'eyJleHAiOjE1NjA3NDkyNzQsImlhdCI6MTU2MDc0NTY3NCwiYWxnIjoiSFM1MTIifQ.
# eyJvcGVuaWQiOiIxMjM0In0.
# 8s2iWVMNU2gIh-d7lksVCqqzAyc3Mz3-eEdMtzlo9SOXAYV2hqssM3uGfLz0rLEfRwORjwC92ejl2eTHzNbGDQ'
# json.dumps 将字典转换为字符串
# json.loads 将字符串转换为字典
3.解密
###########################itsdangerous的使用 解密#####################################
# 解密所需要的秘钥 和时间是一样的
# 1.导入
from meiduo_mall import settings
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
#2.创建实例对象
s = Serializer(secret_key=settings.SECRET_KEY,expires_in=3600)
#3.解密
s.loads(mdata)
#{'openid': '1234'}
总结
1.签名和验签
- 发送方 先用一种摘要算法吧报文变成摘要
- 再用私钥把这段摘要加密变成签名
- 再把这个签名和报文一起发送
- 接收方用公钥对签名段进行解密, 得到一段摘要A
- 接收方用同样的摘要算法吧报文变成摘要B
- 吧A和B进行比较, 一样就说明没有经过篡改
2.加密和解密
- 发送方把一段明文用公钥进行加密
- 然后发送
- 接收方用私钥进行解密
3.区别
- 签名/验签: 用私钥进行加密(签名), 用公钥进行解密
- 加解密: 用私钥进行解密, 用公钥进行加密
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)