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中使用item()方法遍历字典的例子
Aug 26 Python
用python记录运行pid,并在需要时kill掉它们的实例
Jan 16 Python
Python基础教程之内置函数locals()和globals()用法分析
Mar 16 Python
opencv python 2D直方图的示例代码
Jul 20 Python
Python实现Dijkstra算法
Oct 17 Python
Python设计模式之组合模式原理与用法实例分析
Jan 11 Python
Python生成器的使用方法和示例代码
Mar 04 Python
python multiprocessing模块用法及原理介绍
Aug 20 Python
python图的深度优先和广度优先算法实例分析
Oct 26 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
Apr 14 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
Apr 27 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
Mar 25 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
Window下PHP三种运行方式图文详解
2013/06/11 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
php无法连接mysql数据库的正确解决方法
2016/07/01 PHP
Mootools 1.2教程 同时进行多个形变动画
2009/09/15 Javascript
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
老生常谈jacascript DOM节点获取
2017/04/17 Javascript
easyUI下拉列表点击事件使用方法
2017/05/18 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
使用layui监听器监听select下拉框,事件绑定不成功的解决方法
2019/09/28 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
vue实现下载文件流完整前后端代码
2020/11/17 Vue.js
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
Python Paramiko模块的安装与使用详解
2016/11/18 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
Python中偏函数用法示例
2018/06/07 Python
对python中for、if、while的区别与比较方法
2018/06/25 Python
关于python字符串方法分类详解
2019/08/20 Python
Python如何优雅获取本机IP方法
2019/11/10 Python
基于pandas中expand的作用详解
2019/12/17 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
咨询公司各岗位职责
2013/12/02 职场文书
八项规定整改方案
2014/10/01 职场文书
吃空饷专项整治方案
2014/10/27 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
学生会生活部工作总结2015
2015/03/31 职场文书
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server
使用nginx配置访问wgcloud的方法
2021/06/26 Servers