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高级应用实例对比:高效计算大文件中的最长行的长度
Jun 08 Python
Python计算三角函数之asin()方法的使用
May 15 Python
详解Python判定IP地址合法性的三种方法
Mar 06 Python
python实现汽车管理系统
Nov 30 Python
python自动发邮件总结及实例说明【推荐】
May 31 Python
Python matplotlib绘制饼状图功能示例
Sep 10 Python
使用python绘制二维图形示例
Nov 22 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
Python面向对象之继承原理与用法案例分析
Dec 31 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
Mar 13 Python
如何理解python中数字列表
May 29 Python
Python爬取数据并实现可视化代码解析
Aug 12 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
漂亮但不安全的CTB
2006/10/09 PHP
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
Laravel框架中自定义模板指令总结
2017/12/17 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
基于jquery的checkbox下拉框插件代码
2010/06/25 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
2013/12/27 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
jQuery焦点控制图层展示延迟隐藏的方法
2015/03/09 Javascript
详解JavaScript中setSeconds()方法的使用
2015/06/11 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
2017/05/02 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
Python Socket使用实例
2017/12/18 Python
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
Python bytes string相互转换过程解析
2020/03/05 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
公益广告宣传方案
2014/02/28 职场文书
党员承诺书范文
2014/05/19 职场文书
公证委托书标准格式
2014/09/11 职场文书
党员干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
JavaScript异步操作中串行和并行
2021/11/20 Javascript
mysql insert 存在即不插入语法说明
2022/03/25 MySQL
vscode内网访问服务器的方法
2022/06/28 Servers