ltsdangerous加密解密

Posted chichung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ltsdangerous加密解密相关的知识,希望对你有一定的参考价值。

  • 前言

在做QQ第三方登录时,用户跳转到QQ登录界面登录成功后,会在URL返回一个code参数。前端把code发送给后端。后端收到后,会查询出openid。然后判断openid是否存在,如果存在就可以绑定用户或新建用户。如果不存在,进把openid返回给前端。前端填完注册信息后,把openid、手机号码、用户名、密码等参数再发送给后端处理。

这时候,openid因为先传回去给前端,再传回来给后端。所以中间涉及了安全问题。万一别人篡改了openid呢?所以需要对openid进行加密!这时候就用到了ltsdangerous模块。

 

  • 基本使用

(1)安装

pip install itsdangerous

(2)使用

TimedJSONWebSignatureSerializer 可以生成带有效期的加密数据

格式:

TimedJSONWebSignatureSerializer([秘钥], [有效期])

- 签名(加密): dumps(dict)            返回bytes类型数据
- 验签(解密): loads(str)                返回字典

  - 可以确保数据没有被篡改
       - 数据会过期
- 解密出错异常
        - BadData 父类
        - SignatureExpired:  签名过期
        - BadSignature:  要解密的数据被篡改 

示例:

加密

a = TimedJSONWebSignatureSerializer("h8329hrjkewhf89sdy*()&",60*60)
# b是加密后的字符串
b = a.dumps({"key":"我是不能暴露的信息"}).decode()

 

解密

# c是字典
c = a.loads(b)
# 如果签名过期,抛异常SignatureExpired
# 如果数据被篡改过,抛异常BadSignature

 







以上是关于ltsdangerous加密解密的主要内容,如果未能解决你的问题,请参考以下文章

可以解密加密数据的片段吗?

论如何设计一款端对端加密通讯软件

Android 高级UI解密 :PathMeasure截取片段 与 切线(新思路实现轨迹变换)

Android 高级UI解密 :PathMeasure截取片段 与 切线(新思路实现轨迹变换)

Android 高级UI解密 :PathMeasure截取片段 与 切线(新思路实现轨迹变换)

解密体育背后AI黑科技:花样滑冰动作识别多模视频分类和精彩片段剪辑