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批量生成本地ip地址的方法
Mar 23 Python
Python的Flask框架中实现简单的登录功能的教程
Apr 20 Python
在Python中使用PIL模块处理图像的教程
Apr 29 Python
Python实现列表删除重复元素的三种常用方法分析
Nov 24 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
Mar 22 Python
python使用MQTT给硬件传输图片的实现方法
May 05 Python
python中的global关键字的使用方法
Aug 20 Python
简单了解python中的f.b.u.r函数
Nov 02 Python
python代码打印100-999之间的回文数示例
Nov 24 Python
Python中bisect的使用方法
Dec 31 Python
Python 字典一个键对应多个值的方法
Sep 29 Python
python 指定源路径来解决import问题的操作
Mar 04 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程序占用多少内存(memory_get_usage)
2012/09/23 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
yii中widget的用法
2014/12/03 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
php用户注册信息验证正则表达式
2015/11/12 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
2019/08/02 PHP
jquery 最简单的属性菜单
2009/10/08 Javascript
ajax异步刷新实现更新数据库
2012/12/03 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
jquery动态切换背景图片的简单实现方法
2016/05/14 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
Jquery中attr与prop的区别详解
2017/05/27 jQuery
ionic环境配置及问题详解
2017/06/27 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
JavaScript中import用法总结
2019/01/20 Javascript
利用Dectorator分模块存储Vuex状态的实现
2019/02/05 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
Python多线程编程(八):使用Event实现线程间通信
2015/04/05 Python
Python实现控制台进度条功能
2016/01/04 Python
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
Python爬虫requests库多种用法实例
2020/05/28 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
母校寄语大全
2014/04/10 职场文书
论文评语大全
2014/04/29 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
幼儿园奖惩制度范本
2015/08/05 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
element多个表单校验的实现
2021/05/27 Javascript
详解NumPy中的线性关系与数据修剪压缩
2022/05/25 Python