Python中利用ItsDangerous快捷实现数据加密
目录
- 常规的数据加密/解密
- 可超时失效的数据加密/解密
本文完整示例代码及文件已上传至我的Github
仓库https://github.com/CNFeffery/PythonPracticalSkills
这是我的系列文章「Python实用秘技」的第11期,本系列立足于笔者日常工作中使用Python
积累的心得体会,每一期为大家带来一个几分钟内就可学会的简单小技巧。
作为系列第11期,我们即将学习的是:在Python
中快捷加密数据。
数据安全作为老生常谈的话题,是我们日常使用Python
进行诸如web
应用开发等任务时绕不开的话题,我们希望通过网络传输一些数据的同时,还可以保证数据的安全,毕竟将一些敏感的数据传输到未知的环境中进行使用是非常危险的事情。
而通过使用Python
库ItsDangerous
,我们就可以高效快捷地完成数据加密/解密的过程,它隶属于pallets
项目计划,该项目计划中也包含了Flask
、Jinja
、Quart
等知名的web
开发相关项目:
通过pip install itsdangerous
完成安装后,我们就可以使用它来加密/解密数据了,虽然其提供了种类相当多的方法来满足各种数据加密/解密场景,但我们日常只需要用到其两个API
接口就足够了:
常规的数据加密/解密
最常见的场景下,我们通过已有的密钥,利用URLSafeSerializer()
构建序列化器,即可将数据转化为加密结果:
而针对加密后的结果,使用相同的密钥构建序列化器进行解密即可:
可超时失效的数据加密/解密
有些场景下,我们希望加密生成的数据,从其生成开始的时间点算起,经历若干时间后超时报废,则可以使用URLSafeTimedSerializer()
,其用法与URLSafeSerializer()
基本一致,只是在loads()
解密数据时特别地可设置参数max_age
,当解密时距离此加密结果生成的时间超过max_age
对应的秒数,则会触发错误:
这样就可以满足日常绝大多数使用场景了,有关ItsDangerous
的更多进阶内容请移步其官网https://itsdangerous.palletsprojects.com/
。
到此这篇关于Python中利用ItsDangerous快捷实现数据加密的文章就介绍到这了,更多相关Python数据加密内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
python itsdangerous模块的具体使用方法
itsdangerous 简介 有时您只想将一些数据发送到不受信任的环境.但是如何安全地做到这一点?诀窍就是签名.只要知道一个密钥,您就可以对数据进行加密签名并将其移交给其他人.当您取回数据时,可以轻松确保没有人篡改数据.使用itsdangerous可以实现此种方案. 安装 pip install itsdangerous 使用实例一 import itsdangerous salt='sdaf'#加盐 t=itsdangerous.TimedJSONWebSignatureSerializer
-
python 数据加密代码
1.hashlib import hashlib #创建一个哈希对象 md = hashlib.md5() #md = hashlib.sha1() #md = hashlib.sha224() #md = hashlib.sha25() #md = hashlib.sha384() #md = hashlib.sha512() 1.1 hashlib.update(arg) 1.2 hashlib.digest() #返回数字形式的哈希 1.3 hashlib.hexdigest() #返回1
-
python rsa实现数据加密和解密、签名加密和验签功能
本篇文章主要说明python库rsa生成密钥对,数据的加密解密,api接口的签名和验签,如有抄袭,请留言联系我. 先安装 pip install rsa 安装好后,请看代码 """ 注意: api签名时:签名用私钥,验签用公钥 数据加密时:加密用公钥,解密用私钥 密钥和公钥保存的图片会在下边展示出来 """ import rsa # 对api的签名机制进行验证:签名用私钥,验签用公钥 class RsaEncrypt: def __init__(
-
Python常见的几种数据加密方式
目录 md5加密 解密 增加破解成本的方法 SHA1安全哈希算法 Base64伪加密 DES/AES AES和DES的区别 破解方法 RSA 非对称加密算法 使用流程和场景介绍 公钥私钥生成方式 前言: 常见的加密算法基本分为这几类: 线性散列算法(签名算法)MD5,sha1 对称性加密算法 AES DES 非对称性加密算法 RSA md5加密 MD5是一种被广泛使用的线性散列算法,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整的一致性.且MD5加密之后
-
如何基于python3和Vue实现AES数据加密
高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的).对称加密算法也就是加密和解密用相同的密钥,具有以下几个特点: 1.最常用的对称加密算法 2.密钥建立时间短.灵敏性好.内存需求低 3.实际使用中,使用工作模式为CTR(最好用BC去实现),此工作模式需要引入IV参数(16位的字节数组) 4.密钥长度128/192/256,其中192与256需要配置无政策限制权限文件(JDK6) 5.填充模式最常用的两种
-
Python中利用ItsDangerous快捷实现数据加密
目录 常规的数据加密/解密 可超时失效的数据加密/解密 本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第11期,本系列立足于笔者日常工作中使用Python积累的心得体会,每一期为大家带来一个几分钟内就可学会的简单小技巧. 作为系列第11期,我们即将学习的是:在Python中快捷加密数据. 数据安全作为老生常谈的话题,是我们日常使用Python进行诸如
-
python中利用zfill方法自动给数字前面补0
python中有一个zfill方法用来给字符串前面补0,非常有用 view sourceprint? n = "123" s = n.zfill(5) assert s == "00123" zfill()也可以给负数补0 n = "-123" s = n.zfill(5) assert s == "-0123" 对于纯数字,我们也可以通过格式化的方式来补0 n = 123 s = "%05d" % n a
-
python中利用h5py模块读取h5文件中的主键方法
如下所示: import h5py import numpy as np #HDF5的写入: imgData = np.zeros((2,4)) f = h5py.File('HDF5_FILE.h5','w') #创建一个h5文件,文件指针是f f['data'] = imgData #将数据写入文件的主键data下面 f['labels'] = np.array([1,2,3,4,5]) #将数据写入文件的主键labels下面 f.close() #关闭文件 #HDF5的读取: f = h5
-
在python中利用numpy求解多项式以及多项式拟合的方法
构建一个二阶多项式:x^2 - 4x + 3 多项式求解 >>> p = np.poly1d([1,-4,3]) #二阶多项式系数 >>> p(0) #自变量为0时多项式的值 3 >>> p.roots #多项式的根 array([3., 1.]) >>> p(p.roots) #多项式根处的值 array([0., 0.]) >>> p.order #多项式的阶数 2 >>> p.coeffs #
-
python中利用numpy.array()实现俩个数值列表的对应相加方法
小编想把用python将列表[1,1,1,1,1,1,1,1,1,1] 和 列表 [2,2,2,2,2,2,2,2,2,2]对应相加成[3,3,3,3,3,3,3,3,3,3]. 代码如下: import numpy a = numpy.array([1,1,1,1,1,1,1,1,1,1]) b = numpy.array([2,2,2,2,2,2,2,2,2,2]) c = a + b print(type(c)) print(list(c)) 输出结果为: <class 'numpy.nd
-
在python中利用GDAL对tif文件进行读写的方法
利用GDAL库对tif影像进行读取 示例代码默认波段为[B.G.R.NIR的顺序,且为四个波段] import gdal def readTif(fileName): dataset = gdal.Open(fileName) if dataset == None: print(fileName+"文件无法打开") return im_width = dataset.RasterXSize #栅格矩阵的列数 im_height = dataset.RasterYSize #栅格矩阵的行
-
在python中利用最小二乘拟合二次抛物线函数的方法
1.最小二乘也可以拟合二次函数 我们都知道用最小二乘拟合线性函数没有问题,那么能不能拟合二次函数甚至更高次的函数呢?答案当然是可以的.下面我们就来试试用最小二乘来拟合抛物线形状的的图像. 对于二次函数来说,一般形状为 f(x) = a*x*x+b*x+c,其中a,b,c为三个我们需要求解的参数.为了确定a.b.c,我们需要根据给定的样本,然后通过调整这些参数,知道最后找出一组参数a.b.c,使这些所有的样本点距离f(x)的距离平方和最小.用什么方法来调整这些参数呢?最常见的自然就是我们的梯度下降
-
在python中利用KNN实现对iris进行分类的方法
如下所示: from sklearn.datasets import load_iris iris = load_iris() print iris.data.shape from sklearn.cross_validation import train_test_split X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size = 0.25, random_state = 3
-
在python中利用opencv简单做图片比对的方法
下面代码中利用了两种比对的方法,一 对图片矩阵(m x m)求解特征值,通过比较特征值是否在一定的范围内,判断图片是否相同.二 对图片矩阵(m x m)中1求和,通过比较sum和来比较图片. # -*- coding: utf-8 -*- import cv2 as cv import numpy as np import os file_dir_a='C:\Users\wt\Desktop\data\image1\\' file_dir_b='C:\Users\wt\Desktop\data\
-
python中利用matplotlib读取灰度图的例子
代码为: import matplotlib.pyplot as plt #用于显示图片 import matplotlib.image as mpimg # mpimg 用于读取图片 picdir = 'C:\\Users\\wyt\\Desktop\\test\\ship\\012400.jpg' img = mpimg.imread(picdir) plt.imshow(img) plt.title('Original train image') plt.show() 显示结果如下,是以热
随机推荐
- jQuery.Highcharts.js绘制柱状图饼状图曲线图
- JQUERY复选框CHECKBOX全选,取消全选
- 用Js实现的动态增加表格示例自己写的
- 浅谈spring容器中bean的初始化
- SpringBoot webSocket实现发送广播、点对点消息和Android接收
- Oracle出现ora-12154无法解析指定连接标识符的解决方法
- python的id()函数解密过程
- bootstrap多种样式进度条展示
- HTML中嵌入PHP的简单方法
- python中字典(Dictionary)用法实例详解
- JSP Spring防止用户重复登录的实现方法
- 六、访问CGI变量
- RHEL6.5编译安装MySQL5.6.26教程
- android 设置全屏的两种方法
- 简单实现android短信发送器
- js单词形式的运算符
- 在IIS6中安装WebKnight的方法(iis防火墙)
- RedHatLinux7.1中语言化完全攻略(一)
- php SQL防注入代码集合
- Java语言多线程终止中的守护线程实例