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中浮点数精度处理的技巧总结
Aug 10 Python
python 文件操作删除某行的实例
Sep 04 Python
mac下pycharm设置python版本的图文教程
Jun 13 Python
python使用epoll实现服务端的方法
Oct 16 Python
python按时间排序目录下的文件实现方法
Oct 17 Python
一看就懂得Python的math模块
Oct 21 Python
python3安装speech语音模块的方法
Dec 24 Python
python绘制多个子图的实例
Jul 07 Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 Python
django 获取字段最大值,最新的记录操作
Aug 09 Python
Python unittest如何生成HTMLTestRunner模块
Sep 08 Python
python绘图subplots函数使用模板的示例代码
Apr 30 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
php递归创建和删除文件夹的代码小结
2012/04/13 PHP
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
javascript delete 使用示例代码
2010/03/29 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
node.js监听文件变化的实现方法
2019/04/17 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
[02:14]DOTA2英雄基础教程 修补匠
2013/12/23 DOTA
python+mysql实现简单的web程序
2014/09/11 Python
用python找出那些被“标记”的照片
2017/04/20 Python
对python pandas 画移动平均线的方法详解
2018/11/28 Python
pytorch forward两个参数实例
2020/01/17 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
2021/03/02 Python
10个顶级Python实用库推荐
2021/03/04 Python
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
台湾专柜女包:KINAZ
2019/12/26 全球购物
运动员获奖感言
2014/08/15 职场文书
5.12护士节活动总结
2015/02/10 职场文书
仓库统计员岗位职责
2015/04/14 职场文书
微信小程序实现录音Record功能
2021/05/09 Javascript
教你使用vscode 搭建react-native开发环境
2021/07/07 Javascript
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
2022/01/18 Java/Android
基于Python实现nc批量转tif格式
2022/08/14 Python