参考:
http://bbs.itheima.com/forum.php?mod=viewthread&tid=420455
https://segmentfault.com/q/1010000019136867/a-1020000019181039

带时间戳,就是在解密的时候,只解密规定时间内的数据,超过时间的不解密,报错

>>> from itsdangerous import TimedSerializer
>>> s=TimedSerializer('secret-key')
>>> s.dumps([1,2,3,4])
'[1, 2, 3, 4].DI7WHQ.yVOjwQWau5mVRGuVkoqa7654VXc'
>>> s.loads('[1, 2, 3, 4].DI7WHQ.yVOjwQWau5mVRGuVkoqa7654VXc')
[1, 2, 3, 4]
>>> s.loads('[1, 2, 3, 4].DI7WHQ.yVOjwQWau5mVRGuVkoqa7654VXc',max_age=10)
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "/usr/local/lib/python2.7/site-packages/itsdangerous.py", line 643, in loads.unsign(s, max_age, return_timestamp=True)File "/usr/local/lib/python2.7/site-packages/itsdangerous.py", line 463, in unsigndate_signed=self.timestamp_to_datetime(timestamp))
itsdangerous.SignatureExpired: Signature age 28 > 10 seconds
>>> s.loads('[1, 2, 3, 4].DI7WHQ.yVOjwQWau5mVRGuVkoqa7654VXc',max_age=40)
[1, 2, 3, 4]

https://blog.csdn.net/qq_36474164/article/details/89156034

官方文档:

from itsdangerous import Signer# 1.简单使用
s = Signer('secret-key')
s.sign('my string') # 'my string.wh6tMHxLgJqB6oY1uT73iMlyrOAs.unsign('my string.wh6tMHxLgJqB6oY1uT73iMlyrOA')  # my string# 如果串改了字符串,则会报错,将最后一个大写的A换成小写a
s.unsign('my string.wh6tMHxLgJqB6oY1uT73iMlyrOa')  # my string# 2.使用过期时间
from itsdangerous import TimestampSigner
s = TimestampSigner('secret-key')
string = s.sign('foo')
s.unsign(string, max_age=5)# 3.序列化
from itsdangerous import Serializer
s = Serializer('secret-key')
s.dumps([1, 2, 3, 4])
s.loads('[1, 2, 3, 4].r7R9RhGgDPvvWl3iNzLuIIfELmo')# 4.连接安全序列化
from itsdangerous import URLSafeSerializer
s = URLSafeSerializer('secret-key')
s.dumps([1, 2, 3, 4])
s.loads('WzEsMiwzLDRd.wSPHqC0gR7VUqivlSukJ0IeTDgo')# 5.jws
from itsdangerous import JSONWebSignatureSerializer
s = JSONWebSignatureSerializer('secret-key')
s.dumps({'x': 42})##
s.dumps(0, header_fields={'v': 1})# 6.盐s1 = URLSafeSerializer('secret-key', salt='activate-salt')
s1.dumps(42)s2 = URLSafeSerializer('secret-key', salt='upgrade-salt')
s2.dumps(42)s2.loads(s1.dumps(42))# 7.失败# 8.应用
import itsdangerous
from itsdangerous import SignatureExpired, BadSignature# 设置签名
signer = '123'
ts = itsdangerous.TimedJSONWebSignatureSerializer(signer, expires_in=30)
token = ts.dumps({'wang': '123'}).decode()  # 加密生成token
# eyJhbGciOiJIUzI1NiIsImlhdCI6MTU3NTAxMzkyMSwiZXhwIjoxNTc1MDEzOTUxfQ.eyJ3YW5nIjoiMTIzIn0.pr8sKywKKZA-snUVuWkxwG3bIvG9xKNdRhsK1YIY3lo# 解密部分/如果超过过期时间则会报SignatureExpired错误/值有误会报BadSignature错误
try:ret = ts.loads(token)print(ret)
except SignatureExpired as e:print('超时')
except BadSignature as e:print('token有误')"""
https://pythonhosted.org/itsdangerous/
"""

Python Itsdangerous相关推荐

  1. go 实现解密python中的 itsdangerous

    应用的场景 有现成的python 项目 需要使用go 进行扩展! 代码实现 python通过itsdangerous 对数据进行加密 from itsdangerous import TimedJSO ...

  2. python的模块itsdangerous

    这个模块主要用来签名和序列化 使用场景: 一.给字符串添加签名: 发送方和接收方拥有相同的密钥--"secret-key",发送方使用密钥对发送内容进行签名,接收方使用相同的密钥对 ...

  3. python 密码学 模块_python学习-itsdangerous模块-黑马程序员技术交流社区

    博客链接地址:http://www.zhuyannan.top/itsdangerous-加密你的数据/ 如果你想向不可信的环境发送数据,但又担心数据被别人利用,就可以使用 itsdangerous来 ...

  4. python中itsdangerous模块

    使用itsdangerous生成临时身份令牌 准备工作: 安装pip install itsdangerous import itsdangeroussalt='sdaf'#加盐,指定一个盐值,别让别 ...

  5. Python库全部整理出来了,非常全面

    库名称简介 Chardet 字符编码探测器,可以自动检测文本.网页.xml的编码. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable 主要用于在终端或浏览器端构 ...

  6. python flask 部署_如何进行Python Flask项目的部署?

    先把项目传到git上,然后clone到服务器,记得先把需要的库以及版本写到 requirements.txt中 Flask==0.10.1 Flask-Bootstrap==3.0.3.1 Flask ...

  7. 1000+ 常用 Python 库一览

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源 | 法纳斯特 这次给大家总结整理了1000+常用Python库 ...

  8. 如何用 Python 和 Flask 建立部署一个 Facebook Messenger 机器人

    这是我建立一个简单的 Facebook Messenger 机器人的记录.功能很简单,它是一个回显机器人,只是打印回用户写了什么. 回显服务器类似于服务器的"Hello World" ...

  9. Python全家福,这些库你认识哪些?

    环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. v ...

最新文章

  1. 开源项目PullToRefresh详解(一)——PullToRefreshListView
  2. git rebase -i 汇合提交
  3. 你还在使用 try-catch-finally 关闭资源?不太优雅~
  4. iOS App 启动性能优化
  5. mysql json函数_Mysql里的JSON系列操作函数
  6. html中的特殊符号
  7. python中文怎么读-python的读法
  8. jumpserver的安装
  9. 高通APQ8009w LTR303_ALS 光感(sensor)兼容模式调试
  10. 计算器存储功能怎么用_数控车床加工刀具补偿功能怎么用?
  11. 生活家健康指南:创可贴使用四大误区
  12. 在水处理控制系统中正确运用信号隔离器
  13. C1 驾驶证考试科目二考试心得
  14. [bzoj4453]cys就是要拿英魂!
  15. pytorch训练时报input size错误问题
  16. Kettle对非结构化数据进行分类
  17. 程序员的电脑选择推荐
  18. 固定资产的日期之接管日期
  19. php修改qq举报按钮,自定义修改QQ在线状态
  20. 高德地图图形面积计算

热门文章

  1. python 操作微信闪电贷款_16、6个能够让Python程序快如闪电的小技巧
  2. js 节点 选中ztree_zTree使用
  3. 微课|玩转Python轻松过二级(3.2节):元组与生成器推导式
  4. Python花式编程案例锦集(4)
  5. Python“制作”midi音乐“两只老虎”
  6. mysql 数据缓冲区,MySQL写入缓冲区在数据库中的作用( Change Buffer )
  7. aspx 判断字符串是否为decimal_python实现判断一个字符串是否是合法IP地址
  8. java实现通用查询_通用业务引用查询服务实现
  9. verilog异步复位jk触发器_异步复位同步释放原理
  10. ROS功能包或其中一部分找不到的奇葩问题及对应解决方案