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记录程序运行时间的三种方法
Jul 14 Python
基于Python的文件类型和字符串详解
Dec 21 Python
使用python实现BLAST
Feb 12 Python
python opencv之分水岭算法示例
Feb 24 Python
python实现文本界面网络聊天室
Dec 12 Python
python中时间转换datetime和pd.to_datetime详析
Aug 11 Python
python爬虫增加访问量的方法
Aug 22 Python
python代码如何实现余弦相似性计算
Feb 09 Python
Selenium常见异常解析及解决方案示范
Apr 10 Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
Aug 07 Python
pycharm安装深度学习pytorch的d2l包失败问题解决
Mar 25 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
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
php循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
php伪静态之APACHE篇
2014/06/02 PHP
jquery tools之tooltip
2009/07/25 Javascript
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
jquery 获取标签名(tagName)示例代码
2013/07/11 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
vue多次循环操作示例
2019/02/08 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
2016/09/18 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
30秒轻松实现TensorFlow物体检测
2018/03/14 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
html5之Canvas路径绘图、坐标变换应用实例
2012/12/26 HTML / CSS
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
美国新蛋IT数码商城:Newegg.com
2016/07/21 全球购物
集团公司人力资源部岗位职责
2014/01/03 职场文书
网站美工岗位职责
2014/04/02 职场文书
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
2014年人力资源工作总结
2014/11/19 职场文书
离婚协议书格式
2015/01/26 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python
html中两种获取标签内的值的方法
2022/06/16 jQuery