Python AES加密模块用法分析


Posted in Python onMay 22, 2017

本文实例讲述了Python AES加密模块用法。分享给大家供大家参考,具体如下:

AES是新的一种加密模块。在上次介绍过在C语言中如何来OpenSSL中的DES。这次我们来看看Python自带的库如何来使用AES来加解密。其实二者的原理还是非常像,只是说在python中来做这个事情会比C语言要简单点,但是比起C#/Java还是有点点??隆T?#/JAVA这种语言中,对于加密的源数据的处理,padding一般都会有完整的实现。我在上次C语言中也处理过这个问题。在python库中,也是需要自己来处理这个。

from Crypto.Cipher import AES
# padding算法
BS = 16
pad = lambda s: s + (BS - len(s) % BS) * chr(0)
unpad = lambda s : s[0:-ord(s[-1])]
# 将字符串转换成二进制的buff块
def parse_hex(hex_str):
 l=int(math.ceil(len(hex_str)/2))
 buf=''
 for i in range(0,l):
  s=hex_str[(i*2):((i+1)*2)]
  buf=buf+chr(int(s,16))
 return buf
# 解析加密的key
key=parse_hex("68b329da9893e34099c7d8ad5cb9c940")
iv=parse_hex("68b329da9893e34099c7d8ad5cb9c940")
# 新建一个AES的对象
aes_obj = AES.new(key, AES.MODE_CBC,iv)
# 做字节对齐
padding_zero=pad(raw_buf)
# 开始加密
encrypt_buf=aes_obj.encrypt(padding_zero)
# 解密
buff=aes_obj.decrypt(encrypt_buf)

这个代码中padding写的还是非常漂亮的。如果在C里面实现这个,还需要??滦床簧佟?/p>

Python 相关文章推荐
python抓取京东商城手机列表url实例代码
Dec 18 Python
Python中文件I/O高效操作处理的技巧分享
Feb 04 Python
Python 遍历列表里面序号和值的方法(三种)
Feb 17 Python
Python调用C语言的方法【基于ctypes模块】
Jan 22 Python
查看python下OpenCV版本的方法
Aug 03 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
Oct 28 Python
Python字节单位转换实例
Dec 05 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
Jan 10 Python
python通用读取vcf文件的类(复制粘贴即可用)
Feb 29 Python
Python字符串格式化f-string多种功能实现
May 07 Python
Python办公自动化之教你如何用Python将任意文件转为PDF格式
Jun 28 Python
Python 安装setuptools和pip工具操作方法(必看)
May 22 #Python
对Python进行数据分析_关于Package的安装问题
May 22 #Python
详解python之配置日志的几种方式
May 22 #Python
多版本Python共存的配置方法
May 22 #Python
Python中元组,列表,字典的区别
May 21 #Python
Apache如何部署django项目
May 21 #Python
python使用mysql数据库示例代码
May 21 #Python
You might like
JS与PHP向函数传递可变参数的区别实例代码
2011/05/18 PHP
php获得网站访问统计信息类Compete API用法实例
2015/04/02 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
PHP Ajax实现无刷新附件上传
2016/08/17 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
JavaScript 仿关机效果的图片层
2008/12/26 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
Angularjs 滚动加载更多数据
2016/03/17 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
2017/02/15 Javascript
Javascript刷新页面的实例
2017/09/23 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
2020/08/07 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
django 中QuerySet特性功能详解
2019/07/25 Python
python实现的config文件读写功能示例
2019/09/24 Python
python、Matlab求定积分的实现
2019/11/20 Python
Python如何基于selenium实现自动登录博客园
2019/12/16 Python
Python 解析pymysql模块操作数据库的方法
2020/02/18 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
keras 使用Lambda 快速新建层 添加多个参数操作
2020/06/10 Python
python3中确保枚举值代码分析
2020/12/02 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
HTML5拖拽API经典实例详解
2018/04/20 HTML / CSS
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
化工专业大学生职业生涯规划书
2014/01/14 职场文书
导游实习生自荐书
2014/01/28 职场文书
陶瓷类经典广告语集锦
2019/10/25 职场文书
python中使用 unittest.TestCase单元测试的用例详解
2021/08/30 Python
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python