from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
from django.conf import settings
class SecretOauth(object):
def __init__(self):
self.serializer = Serializer(secret_key=settings.SECRET_KEY,expires_in=300)
def dumps(self,content_dict):
token = self.serializer.dumps(content_dict).decode()
return token
def loads(self,token):
try:
content_dict = self.serializer.loads(token)
except Exception as e:
return None
return content_dict
if __name__ == '__main__':
res = SecretOauth().dumps(content_dict={'mobile':'13978488888'})
print('加密后:', res)
res2 = SecretOauth().loads(res)
print('解密后:', res2)
print(res2.get('mobile'))
有时候我们需要把一些信息传给前端,之后前端再传回来,若是遇到敏感信息就会被暴露,所以我们需要把它加密成一个token,待前端传回来的时候再进行解密。我们可以使用itsdangerous这个模块进行加密和解密操作1.安装itsdangerouspip install itsdangerous2.简单使用其实itsdangerous的用法有多种,我们这里只用给JSON加解密的方法,需要用到TimedJSONWebSignatureSerializer类的dumps()和loads()方法from i
首先itsdangerous包是已经安装的,在models已导入from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
点入itsdangerous发现是从jws.py导入TimedJSONWebSignatureSerializer,from .jws import TimedJSONWebSignatureSerializer
以下为jws.py文件
`import hashlib
import time
impor.
在Flask中生成用于验证的token时,从itsdangerous(2.1.2)中调用TimedJSONWebSignatureSerializer时发现报错:cannot import name 'TimedJSONWebSignatureSerializer' from 'itsdangerous'
跳转到代码中确实没有找到TimedJSONWebSignatureSerializer类。
查看itsdangerous文档,发现该库在2.0.0版本之后就将TimedJSONWebS
通过测试发现,对于TimedJSONWebSignatureSerializer的加密算法会将字典类型加密,加密后的格式是字节类型。但是对于他的解密算法确实,能够将字符串或者字节类型的加密数据,都解密成字典类型。
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
from django.conf import settings
# 生成一个序列化对象(加密秘钥,加密时间5秒)
serializer = Seria
使用场景:
一、给字符串添加签名:
发送方和接收方拥有相同的密钥--"secret-key",发送方使用密钥对发送内容进行签名,接收方使用相同的密钥对接收到的内容进行验证,看是否是发送方发送的内容
1 >>> from itsdangerous import Signer
2 >>> s = Signer('secret-...
为什么要用itsdangerous,是为了保证你的加密的数据没有被人修改,因为修改了就无法重新解出原数据,若超时了也无法解出内容,应用场景激活,发一个激活的网址给你,你若在一定时间内,未激活,会激活超时。
首先介绍下载pycharm中的安装:
安装命令:pip install itsdangerous
有时你想向一个不可信的环境发送一些数据,如何保证安全呢,答案是签名,使用只有你自己知道的秘钥(...
首先我们来看生成令牌和解码令牌的代码:
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
s = Serializer(app.config['SECRET_KEY'], expires_in=3600)
token = s.dumps({'confirm': 23})
from itsdangerous import TimedJSONWebSignatureSerializer as TJWSSerializer
from itsdangerous import BadData
# itsdangerous: 进行数据的加解密
# 安装: pip install itsdangerous
# if __name__ == '__main__':
# ...
1.导入TimedJSONWebSignatureSerializer,用于生成具有过期时间的JSON Web签名。from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
s=Serializer('secret key',expires_in=3600)
token=s.dumps({'key':'val'})#
pip install itsdangerous
在取消订阅某个通讯时,你可以在URL里序列化并且签名一个用户的ID。这种情况下你不需要生成一个一次性的token并把它们存到数据库中。在任何的激活账户的链接或类似的情形下,同样适用。
被签名的对象可以被存入cookie中或其他不可信来源,这意味着你不需要在服务端保存session,这样可以降低数据...