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读文件逐行处理的示例代码分享
Dec 27 Python
使用Python编写一个最基础的代码解释器的要点解析
Jul 12 Python
Python 错误和异常代码详解
Jan 29 Python
python读文件保存到字典,修改字典并写入新文件的实例
Apr 23 Python
pytorch + visdom CNN处理自建图片数据集的方法
Jun 04 Python
利用Python脚本批量生成SQL语句
Mar 04 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
Apr 07 Python
python和php学习哪个更有发展
Jun 17 Python
python实例化对象的具体方法
Jun 17 Python
Python爬虫破解登陆哔哩哔哩的方法
Nov 17 Python
matplotlib交互式数据光标mpldatacursor的实现
Feb 03 Python
解决hive中导入text文件遇到的坑
Apr 07 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
一个简单的域名注册情况查询程序
2006/10/09 PHP
来自PHP.NET的入门教程
2006/10/09 PHP
php 在线打包_支持子目录
2008/06/28 PHP
php查看session内容的函数
2008/08/27 PHP
php&mysql 日期操作小记
2012/02/27 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
JavaScript学习笔记(十)
2010/01/17 Javascript
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
Python yield使用方法示例
2013/12/04 Python
两个命令把 Vim 打造成 Python IDE的方法
2016/03/20 Python
python检测主机的连通性并记录到文件的实例
2018/06/21 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
Django中使用极验Geetest滑动验证码过程解析
2019/07/31 Python
python+django+rest框架配置创建方法
2019/08/31 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
Lampenwelt德国:欧洲领先的灯具和照明在线商店
2018/08/05 全球购物
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
2016北大自主招生自荐信模板
2016/01/28 职场文书