【愚公系列】2022年01月 Python教学课程 54-itsdangerous加解密库的使用

本文介绍了itsdangerous库的基本概念及使用方法,该库用于处理数据签名和验证,支持JSON Web Signature (JWS)标准。文章详细展示了如何利用此库进行数据加密与解密,并对比了签名与加密的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

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.签名和验签

  1. 发送方 先用一种摘要算法吧报文变成摘要
  2. 再用私钥把这段摘要加密变成签名
  3. 再把这个签名和报文一起发送
  4. 接收方用公钥对签名段进行解密, 得到一段摘要A
  5. 接收方用同样的摘要算法吧报文变成摘要B
  6. 吧A和B进行比较, 一样就说明没有经过篡改

2.加密和解密

  1. 发送方把一段明文用公钥进行加密
  2. 然后发送
  3. 接收方用私钥进行解密

3.区别

  • 签名/验签: 用私钥进行加密(签名), 用公钥进行解密
  • 加解密: 用私钥进行解密, 用公钥进行加密
### 回答1: 如果您在安装 Visual Studio 2022 后发现 `python.exe` 不见了,可能是由于缺少相关的组件或选项而导致的。 以下是一些可能的解决方案: 1. 安装 Python 工作负载:在 Visual Studio 2022 的安装程序中,确保选择了“Python 开发”工作负载,并安装了所有相关的组件。如果您已经安装了 Visual Studio 2022,可以通过启动 Visual Studio Installer 并更新相应的工作负载来添加所需的组件。 2. 设置 Python 解释器:在 Visual Studio 2022 中,您需要设置 Python 解释器以便在 Visual Studio 中使用。打开 Visual Studio 并转到“Python 环境”窗口(通过“查看”菜单或使用快捷键 Ctrl + K, Ctrl + B),然后选择您的 Python 解释器。如果您尚未安装 Python 解释器,请确保先安装 Python 并添加到系统路径中。 3. 检查路径:确保您的系统路径中包含 Python 安装路径。在 Windows 操作系统中,您可以通过打开“环境变量”设置并检查“系统变量”中的“Path”变量来查看路径。如果路径不包含 Python 安装路径,请手动添加。 4. 重新安装 Visual Studio:如果您尝试了以上所有解决方案仍无法找到 `python.exe`,则可能需要重新安装 Visual Studio 2022。在重新安装之前,建议卸载 Visual Studio 并使用 Visual Studio 安装程序清除工具删除所有相关文件和注册表项,以确保重新安装是干净的。 希望这些解决方案可以帮助您找回 `python.exe`。 ### 回答2: 如果你在使用Visual Studio 2022时发现python.exe不在,并且需要它来运行你的Python项目,你可以尝试以下解决方法: 1. 检查安装:首先确认你已正确安装了Visual Studio 2022,包括Python开发工作负载。在安装过程中,你可以选择安装Python开发工作负载,以确保相关组件被正确安装。 2. 更新Visual Studio:尝试通过Visual Studio 2022的更新选项来更新你的IDE,这样可以修复可能存在的安装问题。 3. 重新安装:如果更新没有解决问题,尝试重新安装Visual Studio 2022。先卸载现有的安装,然后重新下载最新版本的Visual Studio 2022并进行安装。 4. 检查环境变量:确保你的环境变量设置正确。在开始菜单中搜索“环境变量”并打开该配置页面,检查是否有指向正确Python安装路径的环境变量。 5. 安装Python解释器:如果你已安装了Visual Studio 2022python.exe仍然丢失,可能是因为你没有安装Python解释器。你可以从Python官网下载并安装最新版本的Python解释器。 6. 配置项目:如果你想运行特定的Python项目,可以在Visual Studio 2022中配置项目属性,指定正确的Python解释器路径。 如果以上方法仍然不能解决问题,你可以考虑寻求相关论坛或社区的帮助,咨询更专业的技术人员来解决你的问题。 ### 回答3: 如果在使用Visual Studio 2022时,发现Python解释器的可执行文件(python.exe)消失了,可以按照以下步骤来解决这个问题: 1. 确认Python解释器是否完全丢失:首先检查VS2022中是否已经选择了正确的Python解释器。在VS2022的菜单栏中选择“工具”->“选项”,在左侧面板中选择“Python工具”,然后在右侧“Python环境”中确认已正确选择Python解释器。 2. 检查Python解释器是否已正确安装:确认已在系统中正确安装了Python解释器。在开始菜单中搜索“Python”,查看是否能找到Python解释器的安装位置。如果找不到Python解释器,可能需要重新安装Python。 3. 更新或重新安装Python扩展:在VS2022的菜单栏中选择“工具”->“扩展和更新”,在左侧面板中选择“Python”,然后在右侧找到与Python相关的扩展。点击“更新”或“重新安装”来确保Python扩展的正常运行。 4. 检查环境变量设置:打开系统的环境变量设置,确认是否已将Python解释器的安装路径添加到了系统的“Path”变量中。如果未添加,请手动添加Python解释器的安装路径。 5. 重新初始化VS设置:如果以上方法都没有恢复python.exe,可以尝试将VS2022的设置还原为默认值。在VS2022的菜单栏中选择“工具”->“导入和导出设置”,选择“恢复所有设置”,然后按照提示重新初始化设置。 如果仍然无法解决问题,可能需要尝试卸载并重新安装VS2022Python解释器,或者寻求相关技术支持。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愚公搬代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值