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 序列化 pickle/cPickle模块使用介绍
Nov 30 Python
详解python之简单主机批量管理工具
Jan 27 Python
Python3中关于cookie的创建与保存
Oct 21 Python
利用python循环创建多个文件的方法
Oct 25 Python
scrapy-redis的安装部署步骤讲解
Feb 27 Python
Python数据类型之列表和元组的方法实例详解
Jul 08 Python
python matplotlib库直方图绘制详解
Aug 10 Python
Python 类属性与实例属性,类对象与实例对象用法分析
Sep 20 Python
Python中如何将一个类方法变为多个方法
Dec 30 Python
基于PyTorch的permute和reshape/view的区别介绍
Jun 18 Python
python和js交互调用的方法
Jun 23 Python
使用Python pip怎么升级pip
Aug 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
php在线代理转向代码
2012/05/05 PHP
PHP生成图片验证码、点击切换实例
2014/06/25 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
表格 隔行换色升级版
2009/11/07 Javascript
js arguments对象应用介绍
2012/11/28 Javascript
为指定的元素添加遮罩层的示例代码
2014/01/15 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
京东优选小程序的实现代码示例
2020/02/25 Javascript
JS实现炫酷雪花飘落效果
2020/08/19 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
Python读取MRI并显示为灰度图像实例代码
2018/01/03 Python
Python实现简单生成验证码功能【基于random模块】
2018/02/10 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
Django2.1.3 中间件使用详解
2018/11/26 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
学术会议欢迎词
2014/01/09 职场文书
大学生党员自我批评
2014/02/14 职场文书
开展读书活动总结
2014/06/30 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
长城导游词300字
2015/01/30 职场文书
生产设备维护保养制度
2015/08/06 职场文书
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android
redis中lua脚本使用教程
2021/11/01 Redis