当前位置: 首页 > wzjs >正文

江阴网站推广seo舆情优化

江阴网站推广,seo舆情优化,成都中职学校网站建设推广,免费的优质网站这是我这两天的思考 早知道密码学的课就不旷那么多了 纯个人见解 如需转载,标记出处 目录 一、官网介绍 二、事例代码 源码分析: 加密函数dump源码使用的函数如下: 解密 二、itsdangerousBUG汇总 1.ImportError: cannot import name ‘…

这是我这两天的思考

早知道密码学的课就不旷那么多了

纯个人见解

如需转载,标记出处

目录

一、官网介绍

二、事例代码

源码分析:

加密函数dump源码使用的函数如下:

解密

二、itsdangerousBUG汇总

1.ImportError: cannot import name ‘TimedJSONWebSignatureSerializer‘ from ‘itsdangerous‘ 

原因:

解决方法一:降级 itsdangerous 到 1.1.0(我自己用的这个)

解决方法二:使用 URLSafeTimedSerializer 替代


一、官网介绍

ItsDangerous — ItsDangerous Documentation (2.2.x)

有时,你需要将一些数据发送到不受信任的环境,再将其取回。为了安全,必须对数据进行签名以检测更改。

有了只有你知道的密钥,你就可以对数据进行加密签名并将其交给其他人。取回数据时,可以确保没有人篡改它。

接收方可以看到数据,但除非他们也有你的密钥,否则无法改数据。

必须将密钥保密且复杂

安装
pip install -U itsdangerous

二、事例代码

只截取部分分析代码

1.加解密工具

#加密
def generic_openid(openid):s = Serializer(secret_key=settings.SECRET_KEY, expires_in=3600)access_token = s.dumps({'openid': openid})# 将bytes类型的数据转换为 strreturn access_token.decode()# 解密
def check_access_token(token):s = Serializer(secret_key=settings.SECRET_KEY, expires_in=3600)try:result=s.loads(token)except Exception:return Noneelse:return result.get('openid')

2.功能(判断用户是否绑定,如果没有绑定,hash加密openid生成token给前端,前端收集用户填写的信息,传输时把用户信息+token一起传递给后端

#根据openid进行查询判断用户是否已经绑定try:qquser = OAuthQQUser.objects.get(openid=openid)except OAuthQQUser.DoesNotExist:# 不存在# 5. 如果没有绑定过,则需要绑定access_token = makeToken(openid,3600)#前端拿着这个凭证去进行绑定response = JsonResponse({'code': 400, 'access_token': access_token})return responseelse:# 存在#如果绑定过,则直接登录

我认为这里的token是一个hash算法生成的签名+原数据的拼接,它在前端解不开,只能在我的后端解开,这个功能就是为了给前端一个通行证,你可以把自己的用户信息比如邮箱绑定发给我,我后端根据返回来的token来验证是否这个绑定是我想给的用户本人。全程只使用一个密钥加解密,也就是对称加密

源码分析:

加密函数dump源码使用的函数如下:

dump做了两个主要工作,创建头部,生成签名

他在头部里放了这个签名有了什么算法(这里用的是默认算法,HS512)

make_signer 函数生成一个签名者对象(signer)。根据当前的 secret_key以及其他salt、algorithm来返回一个用于签名的实例

对传入的数据进行签名,返回拼接了签名的数据字符串(原始数据 + 分隔符 + 签名)

want_bytes格式化字符串,将其编码成字节

解密

这里先使用make_signer()函数获取验签用的算法

重点是这个unsign函数

它对签名过的数据进行验签,返回原始数据

signed_value: 已签名的数据= 原始数据 + 分隔符 + 签名

先判断签名格式。如果签名被篡改(格式不对),捕获异常并返回 False

将拆分下来的数据openid生成新的签名,将原先的签名和新的作比较看是都相同

二、itsdangerousBUG汇总

1.ImportError: cannot import name ‘TimedJSONWebSignatureSerializer‘ from ‘itsdangerous‘ 

之前都正常导入

from itsdangerous import TimedJSONWebSignatureSerializer as Serializer

今天importerror

原因:

itsdangerous 库在高版本中已经移除了 TimedJSONWebSignatureSerializer,所以导致导入失败。

TimedJSONWebSignatureSerializer 是 itsdangerous 早期版本的 API,用来生成带有效期的 token。从 itsdangerous 2.0 开始,这个类被 移除或不推荐使用,官方推荐使用其他方式生成/验证 token(如 URLSafeTimedSerializer)。

解决办法:

解决方法一:降级 itsdangerous 到 1.1.0(我自己用的这个)

降级 itsdangerous:

pip install itsdangerous==1.1.0

解决方法二:使用 URLSafeTimedSerializer 替代

如果不想降级,改用推荐的新写法:


from itsdangerous import URLSafeTimedSerializer 
# 初始化 
serializer = URLSafeTimedSerializer(secret_key='your-secret-key') 
# 生成 
token token = serializer.dumps({'user_id': 123}) 
# 验证 
token try: data = serializer.loads(token, max_age=3600) 
# 3600秒有效期 
print(data) 
except Exception as e: 
print('Token 验证失败:', e)

http://www.dtcms.com/wzjs/267795.html

相关文章:

  • 深圳市 交易建设中心网站谷歌搜索网址
  • 新疆生产建设兵团计生办网站友情链接交易平台
  • 做网站怎么连数据库青岛百度seo代理
  • 温泉网站建设网站模板库
  • 做算命网站赚钱吗淘宝关键词搜索量排名
  • 申请一个网站空间武汉网站开发公司
  • o2o苗木网站建设国内新闻最近新闻今天
  • 安宁市建设局网站营销网课
  • 网站策划网站建设企业产品线上推广方案
  • 网站建设工作室有几个部门百度电脑版登录网站
  • 什么不属于网站推广软件miy188coo免费入口
  • wordpress vip视频靠谱seo外包定制
  • 制作做网站的基本流程网站建设制作教程
  • php网站开发实战开发百度一下你就知道
  • 开发公司向政府申请延期交付seo单页面优化
  • 福州市住房和城乡建设委员会网站大数据查询个人信息
  • google收录网站媒体宣传推广方案
  • 门户网站信息流广告怎么做上海b2b网络推广外包
  • 做的网站图片显示一半外贸全网营销推广
  • 网站建设与网页制作论文武汉seo报价
  • 女人吃男人做床视频网站南通seo
  • 网站开发的几种语言网页制作网站制作
  • 个人网站备案办理拍照淘宝关键词优化技巧
  • 公司网站优化方案可以投放广告的网站
  • 室内设计方案ppt案例seo没什么作用了
  • 做网站公司电话今日热点新闻事件标题
  • 做设计需要素材的常用网站爱站网seo综合查询工具
  • 自己做的网站和模板佛山网络排名优化
  • 上线了做网站价格贵公众号怎么推广和引流
  • 哈尔滨制作网站的公司网络营销的手段包括