Python使用PyCrypto实现AES加密功能示例
作者:pythopen 发布时间:2022-09-18 13:23:57
标签:Python,PyCrypto,AES加密
本文实例讲述了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
PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:
文字在线加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode
MD5在线加密工具:
http://tools.jb51.net/password/CreateMD5Password
在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt
在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha
在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode
希望本文所述对大家Python程序设计有所帮助。
0
投稿
猜你喜欢
- 线性逻辑回归本文用代码实现怎么利用sklearn来进行线性逻辑回归的计算,下面先来看看用到的数据。这是有两行特征的数据,然后第三行是数据的标
- 用法:分析一个脚本的依赖: analysis_dependency.py script1.py递归分析依赖: analysis_depend
- 前言在 Go 单元测试这个系列的第二部分 数据库的Mock测试 中我们介绍了用 go-sqlmock 给数据库的 CRUD 操作做Mock
- 在写代码过程中我们常常可能会遇到这样一种情况,要对一个list中的每个元素做同样的操作时,两种方法方法一:循环遍历每个元素 话不多说,上代码
- 欣赏上一篇:用画为5.12地震受灾同胞们祈福 今年我们的祖国多灾多难 雪灾的阴影还没散去又发生了地震。中国插画 * 举办5.12地震祈幅绘画活
- 安装npm install --save reduxnpm install --save redux-saga配置actionactionT
- pre标签会原样保留HTML内容的格式,可是如果宽度过大会把页面撑坏,这时候需要自动换行来帮忙:Making preformate
- 今天在玩 google earth 4.0b,发现 Print Screen 下来的图片很大,如果直接放在网页上,因为尺寸太大又不合适,又不
- 一、目录权限设置很重要:可以有效防范黑客上传木马文件. 如果通过 chmod 644 * -R 的话,php文件就没有权限访问了。 如果通过
- 本文实例为大家分享了Python实现打砖块游戏的具体代码,供大家参考,具体内容如下#导入模块import pygamefrom pygame
- <script type="text/javascript"> // Close HTML Tags ---
- 我们知道,一般的关系数据库(如SQL Server、Oracle、Access等)中的查询操作是支持集合操作的,例如可以用“Update A
- asp之家注:长文章分页算是asp编程中一个比较经典单位问题,怎么分页,什么时候分页.方法挺多,有的是人为的加入分页标志,有的是程序自动加分
- 年前接到QCon的邀请,颇感意外。在我的印象里,QCon大会是后端开发工程师和架构师的技术大会。后来去QCon大会的官网搜索了下,发现原来Q
- auth模块是什么auth模块时django自带的用户认证模块开发一个网站的时候,无可避免的需要设计实现网站的用户系统。此时我们需要实现包括
- 一. 10句话1.不要依赖register_global=ON的环境,从你刚懂得配置php运行环境甚至尚不明白register_global
- 用科讯CMS“分页显示(专题)文章列表标签”,可以在栏目文章列表下面产生一个页码行。从图可以看出,这段DIV,还需要CSS修饰,但是查看Ht
- 1、最郁闷的发现!!先看代码:<style>#a #b #c span{color:red;}#b #c span{color:
- 1. 调试pythonipdb是用来python中用以交互式debug的模块,可以直接利用pip安装;其功能类似于pycharm中pytho
- 本文实例讲述了从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记。分享给大家供大家参考,具体如下:用tp3.2.3做了不少项目