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中条件选择和循环语句使用方法介绍
Mar 13 Python
Python中的pygal安装和绘制直方图代码分享
Dec 08 Python
Python中支持向量机SVM的使用方法详解
Dec 26 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
对numpy Array [: ,] 的取值方法详解
Jul 02 Python
python 将list转成字符串,中间用符号分隔的方法
Oct 23 Python
详解pyenv下使用python matplotlib模块的问题解决
Nov 29 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
python 识别登录验证码图片功能的实现代码(完整代码)
Jul 03 Python
Python实现自动签到脚本功能
Aug 20 Python
Python 利用flask搭建一个共享服务器的步骤
Dec 05 Python
python网络爬虫实现发送短信验证码的方法
Feb 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
php中url函数介绍及使用示例
2014/02/13 PHP
php中关于换行的实例写法
2019/09/26 PHP
任意位置显示html菜单
2007/02/01 Javascript
JavaScript Cookie显示用户上次访问的时间和次数
2009/12/08 Javascript
JQuery中html()方法使用不当带来的陷阱
2011/04/07 Javascript
首页图片漂浮效果示例代码
2014/06/05 Javascript
一个例子轻松学会Vue.js
2017/01/02 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
Vue动态实现评分效果
2017/05/24 Javascript
微信小程序 五星评分的实现实例
2017/08/04 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
2017/08/15 jQuery
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
解决axios发送post请求返回400状态码的问题
2018/08/11 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
2018/12/06 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
Python实现基于HTTP文件传输实例
2014/11/08 Python
微信跳一跳小游戏python脚本
2018/01/05 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
python 模拟登陆163邮箱
2020/12/15 Python
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
Johnson Fitness澳大利亚:高级健身器材
2021/03/16 全球购物
翻译学院毕业生自荐书
2014/02/02 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
水电施工员岗位职责
2015/04/11 职场文书
入党申请书格式
2019/06/20 职场文书
关于python类SortedList详解
2021/09/04 Python
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS
Windows server 2022创建创建林、域树、子域的步骤
2022/06/25 Servers