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 文件操作实现代码
Oct 07 Python
python使用Berkeley DB数据库实例
Sep 26 Python
python 网络爬虫初级实现代码
Feb 27 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
Jun 13 Python
用python实现k近邻算法的示例代码
Sep 06 Python
在Python 中实现图片加框和加字的方法
Jan 26 Python
python判断文件是否存在,不存在就创建一个的实例
Feb 18 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
Aug 20 Python
在Pytorch中计算自己模型的FLOPs方式
Dec 30 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
Apr 15 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
May 22 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
Nov 11 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
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
利用jquery写的左右轮播图特效
2014/02/12 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
JavaScript去除数组里重复值的方法
2015/07/13 Javascript
jQuery实现浮动层随浏览器滚动条滚动的方法
2015/09/22 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
使用jQuery卸载全部事件的思路详解
2017/04/03 jQuery
基于node.js制作简单爬虫教程
2017/06/29 Javascript
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
Paypal支付不完全指北
2020/06/04 Javascript
jQuery编写QQ简易聊天框
2020/08/27 jQuery
[00:10]神之谴戒
2019/03/06 DOTA
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
Python获取SQLite查询结果表列名的方法
2017/06/21 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
python生成n个元素的全组合方法
2018/11/13 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
外贸采购员求职的自我评价
2013/11/26 职场文书
烹饪自我鉴定
2014/03/01 职场文书
授权委托书怎么写
2014/04/03 职场文书
服务标兵事迹材料
2014/05/04 职场文书
电影地道战观后感
2015/06/04 职场文书
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python