Python使用PyCrypto实现AES加密功能示例


Posted in Python onMay 22, 2017

本文实例讲述了Python使用PyCrypto实现AES加密功能。分享给大家供大家参考,具体如下:

#!/usr/bin/env python
from Crypto.Cipher import AES
import base64
import os
# the block size for the cipher object; must be 16, 24, or 32 for AES
BLOCK_SIZE = 32
# the character used for padding--with a block cipher such as AES, the value
# you encrypt must be a multiple of BLOCK_SIZE in length. This character is
# used to ensure that your value is always a multiple of BLOCK_SIZE
PADDING = '{'
# one-liner to sufficiently pad the text to be encrypted
pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * PADDING
# one-liners to encrypt/encode and decrypt/decode a string
# encrypt with AES, encode with base64
EncodeAES = lambda c, s: base64.b64encode(c.encrypt(pad(s)))
DecodeAES = lambda c, e: c.decrypt(base64.b64decode(e)).rstrip(PADDING)
# generate a random secret key
secret = os.urandom(BLOCK_SIZE)
# create a cipher object using the random secret
cipher = AES.new(secret)
# encode a string
encoded = EncodeAES(cipher, 'password')
print 'Encrypted string:', encoded
# decode the encoded string
decoded = DecodeAES(cipher, encoded)
print 'Decrypted string:', decoded
Python 相关文章推荐
python中urllib模块用法实例详解
Nov 19 Python
Python实现的多线程http压力测试代码
Feb 08 Python
Python中的is和==比较两个对象的两种方法
Sep 06 Python
Python Socket编程之多线程聊天室
Jul 28 Python
Python在图片中插入大量文字并且自动换行
Jan 02 Python
python 将有序数组转换为二叉树的方法
Mar 26 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
Oct 23 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 Python
Python程序慢的重要原因
Sep 04 Python
python爬取代理IP并进行有效的IP测试实现
Oct 09 Python
python3代码中实现加法重载的实例
Dec 03 Python
python 实现IP子网计算
Feb 18 Python
django+js+ajax实现刷新页面的方法
May 22 #Python
Python正则表达式经典入门教程
May 22 #Python
Python AES加密模块用法分析
May 22 #Python
Python 安装setuptools和pip工具操作方法(必看)
May 22 #Python
对Python进行数据分析_关于Package的安装问题
May 22 #Python
详解python之配置日志的几种方式
May 22 #Python
多版本Python共存的配置方法
May 22 #Python
You might like
PHP学习之数组值的操作
2011/04/17 PHP
细谈php中SQL注入攻击与XSS攻击
2012/06/10 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
php json与xml序列化/反序列化
2013/10/28 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
javascript:history.go()和History.back()的区别及应用
2012/11/25 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
通过js获取div的background-image属性
2013/10/15 Javascript
浏览器图片选择预览、旋转、批量上传的JS代码实现
2013/12/04 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
JavaScript自定义等待wait函数实例分析
2015/03/23 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
Node.js Sequelize如何实现数据库的读写分离
2016/10/23 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
利用Python演示数型数据结构的教程
2015/04/03 Python
使用SAE部署Python运行环境的教程
2015/05/05 Python
Python创建模块及模块导入的方法
2015/05/27 Python
Python实现mysql数据库更新表数据接口的功能
2017/11/19 Python
对Python中gensim库word2vec的使用详解
2018/05/08 Python
python绘制多个子图的实例
2019/07/07 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
PHP开发工程师面试问题集锦
2012/11/01 面试题
2014年小班元旦活动方案
2014/02/16 职场文书
药学职务聘任书
2014/03/29 职场文书
教研处工作方案
2014/05/26 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书