itsdangerous的简单使用

26 篇文章 0 订阅
1 篇文章 0 订阅

为什么要用itsdangerous,是为了保证你的加密的数据没有被人修改,因为修改了就无法重新解出原数据,若超时了也无法解出内容,应用场景激活,发一个激活的网址给你,你若在一定时间内,未激活,会激活超时。

首先介绍下载pycharm中的安装:

安装命令:pip install itsdangerous

有时你想向一个不可信的环境发送一些数据,如何保证安全呢,答案是签名,使用只有你自己知道的秘钥(私钥),来加密签名你的数据,并把加密后的数据发送给别人,当别人取回数据时,你可以确定没人更改过这份数据。
他可以破译你的内容,但是他无法修改你包裹的内容,除非他们也有你的秘钥,只要你保存好你的私钥。
itsdangerous内部默认使用了HMAC和SHA1等加密算法来签名,基于 Django 签名模块。它也支持JSON Web 签名 (JWS)。
应用场景可以用于那个激活。
实例代码如下:

#导入模块,然后呢创建对象设置你的私钥,以及过期时间

from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
#创建序列化对象
#参数一是私钥,参数二为有效期def __init__(self, secret_key, expires_in=None, **kwargs):默认为3600
#注私钥是不能公开的,不然别人会模仿你的私钥加密给别人发送信息,这很危险
serlizer = Serializer("吴勇come on",36000)
#data为加密的数据。
data = serlizer.dumps({"openid":"123456"})

print(data)
data = data.decode('utf-8')
data = data+'d'
data = data.encode('utf-8')
print(serlizer.loads(data))
#可以用于网址的校验你只能点击这个网址,但是你不能修改数据

超时报错:

代码:
#导入模块,然后呢创建对象设置你的私钥,以及过期时间

from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
#创建序列化对象
#参数一是私钥,参数二为有效期def __init__(self, secret_key, expires_in=None, **kwargs):默认为3600
#注私钥是不能公开的,不然别人会模仿你的私钥加密给别人发送信息,这很危险
serlizer = Serializer("吴勇come on",1)
#data为加密的数据。
data = serlizer.dumps({"openid":"123456"})

print(serlizer.loads(data))
#可以用于网址的校验你只能点击这个网址,但是你不能修改数据
serlizer = Serializer("吴勇come on",1)
import time
time.sleep(2)
print(serlizer.loads(data))



报错信息
Traceback (most recent call last):
  File "D:/ptest/smtp/dangerous.py", line 20, in <module>
    print(serlizer.loads(data))
  File "C:\Users\dell\AppData\Local\Programs\Python\Python36\lib\site-packages\itsdangerous\jws.py", line 205, in loads
    date_signed=self.get_issue_date(header),
itsdangerous.exc.SignatureExpired: Signature expired
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值