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-opencv在有噪音的情况下提取图像的轮廓实例
Aug 30 Python
详解flask入门模板引擎
Jul 18 Python
python覆盖写入,追加写入的实例
Jun 26 Python
Python 多个图同时在不同窗口显示的实现方法
Jul 07 Python
python下载库的步骤方法
Oct 12 Python
在TensorFlow中屏蔽warning的方式
Feb 04 Python
python绘制动态曲线教程
Feb 24 Python
Python Django form 组件动态从数据库取choices数据实例
May 19 Python
paramiko使用tail实时获取服务器的日志输出详解
Dec 06 Python
利于python脚本编写可视化nmap和masscan的方法
Dec 29 Python
pytorch 权重weight 与 梯度grad 可视化操作
Jun 05 Python
python缺失值填充方法示例代码
Dec 24 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
世界第一个无线广播电台 KDKA
2021/03/01 无线电
php checkdate、getdate等日期时间函数操作详解
2010/03/11 PHP
PHP 之Section与Cookie使用总结
2012/09/14 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
vue.js框架实现表单排序和分页效果
2017/08/09 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
jquery实现图片跟随鼠标的实例
2017/10/17 jQuery
Vue Socket.io源码解读
2018/02/07 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
JavaScript实现简单随机点名器
2019/11/21 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
Python标准库之sqlite3使用实例
2014/11/25 Python
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
django与小程序实现登录验证功能的示例代码
2019/02/19 Python
领先的钻石和订婚戒指零售商:Diamonds-USA
2016/12/11 全球购物
接口可以包含哪些成员
2012/09/30 面试题
通信工程专业女生个人求职信
2013/09/21 职场文书
优秀毕业生求职信范文
2014/01/02 职场文书
餐饮采购员岗位职责
2014/03/15 职场文书
银行内勤岗位职责
2014/04/09 职场文书
乡镇党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
幼儿园科学课教学反思
2016/03/03 职场文书
Python基础之赋值,浅拷贝,深拷贝的区别
2021/04/30 Python
python元组打包和解包过程详解
2021/08/02 Python