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编写简单网络爬虫抓取视频下载资源
Nov 04 Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
Oct 20 Python
对Python3中的input函数详解
Apr 22 Python
Django单元测试工具test client使用详解
Aug 02 Python
python 实现dict转json并保存文件
Dec 05 Python
python之MSE、MAE、RMSE的使用
Feb 24 Python
opencv python在视屏上截图功能的实现
Mar 05 Python
python实现FTP循环上传文件
Mar 20 Python
python 获取剪切板内容的两种方法
Nov 28 Python
python 数据类型强制转换的总结
Jan 25 Python
Python 带星号(* 或 **)的函数参数详解
Feb 23 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命名空间(Namespace)的使用详解
2013/05/04 PHP
php防止sql注入简单分析
2015/03/18 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
2015/11/24 PHP
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
document对象execCommand的command参数介绍
2006/08/01 Javascript
使用js获取QueryString的方法小结
2010/02/28 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
借助node实战JSONP跨域实例
2017/03/30 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
VueJs组件之父子通讯的方式
2018/05/06 Javascript
微信小程序实现收藏与取消收藏切换图片功能
2018/08/03 Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
2018/09/19 Javascript
生产制造追溯系统之再说条码打印
2019/06/03 Javascript
JS通用方法触发点击事件代码实例
2020/02/17 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
关于angular 8.1使用过程中的一些记录
2020/11/25 Javascript
Python中分数的相关使用教程
2015/03/30 Python
深入源码解析Python中的对象与类型
2015/12/11 Python
Python与Java间Socket通信实例代码
2017/03/06 Python
Django REST framework视图的用法
2019/01/16 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
pytorch简介
2020/11/11 Python
css3实现简单的白云飘动背景特效
2020/10/28 HTML / CSS
青年志愿者活动总结
2014/04/26 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书