aes加密算法python实现_Python基于pycrypto实现的AES加密和解密算法示例
本文实例讲述了Python基于pycrypto实现的AES加密和解密算法。分享给大家供大家参考,具体如下:
一 代码
# -*- coding: UTF-8 -*-
import string
import random
from Crypto.Cipher import AES
def keyGenerater(length):
'''''生成指定长度的秘钥'''
if length not in (16, 24, 32):
return None
x = string.ascii_letters+string.digits
return ''.join([random.choice(x) for i in range(length)])
def encryptor_decryptor(key, mode):
return AES.new(key, mode, b'0000000000000000')
#使用指定密钥和模式对给定信息进行加密
def AESencrypt(key, mode, text):
encryptor = encryptor_decryptor(key, mode)
return encryptor.encrypt(text)
#使用指定密钥和模式对给定信息进行解密
def AESdecrypt(key, mode, text):
decryptor = encryptor_decryptor(key, mode)
return decryptor.decrypt(text)
if __name__ == '__main__':
text = 'Python3.5 is excellent.'
key = keyGenerater(16)
#随机选择AES的模式
mode = random.choice((AES.MODE_CBC, AES.MODE_CFB, AES.MODE_ECB, AES.MODE_OFB))
if not key:
print('Something is wrong.')
else:
print('key:', key)
print('mode:', mode)
print('Before encryption:', text)
#明文必须以字节串形式,且长度为16的倍数
text_encoded = text.encode()
text_length = len(text_encoded)
padding_length = 16 - text_length%16
text_encoded = text_encoded + b'0'*padding_length
text_encrypted = AESencrypt(key, mode, text_encoded)
print('After encryption:', text_encrypted)
text_decrypted =AESdecrypt(key, mode, text_encrypted)
print('After decryption:', text_decrypted.decode()[:-padding_length])
二 运行结果
E:\python\python可以这样学\第18章 密码学编程\code>python AES_test.py
('key:', 'D5pcO6iu0HIbj3I2')
('mode:', 1)
('Before encryption:', 'Python3.5 is excellent.')
('After encryption:', '\xf4\x15\x9f\xaf\xea\xd0\n\x03\xfdf\xf6}9\xaa\xa34\xb4\x1eL2\x0e \x16\xa5 \xff?\x8bA\x8e\xdd\xa8')
('After decryption:', u'Python3.5 is excellent.')
PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:
在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:http://tools.zyiz.net/password/hash_md5_sha
希望本文所述对大家Python程序设计有所帮助。
aes加密算法python实现_Python基于pycrypto实现的AES加密和解密算法示例相关推荐
- 基于Python实现的RSA加密和解密算法
目录 第 一部分 RSA 加密和解密算法 1 算法原理 1 1.1 RSA 原理概述 1 用中国剩余定理CRT对RSA运算进行加 2 代码实现 2 2.1 RSA 代码实现 2 2.2 CRT-RSA ...
- 相似度计算 java_Java基于余弦方法实现的计算相似度算法示例
Java基于余弦方法实现的计算相似度算法示例 引导语:Java 编程语言的风格十分接近C.C++语言.Java是一个纯的面向对象的程序设计语言,以下是小编整理的Java基于余弦方法实现的`计算相似度算 ...
- python加密库_python基于pyDes库实现des加密的方法
本文实例讲述了python基于pyDes库实现des加密的方法.分享给大家供大家参考,具体如下: 下载及简介地址:https://twhiteman.netfirms.com/des.html 如需要 ...
- des加密算法python代码_python des加密算法代码(pydes模块加密)
python加密解密模块:pyDES模块,用来提供 DES.Triple-DES 的加密算法. 专题教程: DES加密算法,DES加密解密 python des加密解密算法 例子,Python DES ...
- python实现简易聊天需要登录博客园zip下载_Python基于Socket实现简易多人聊天室的示例代码...
前言 套接字(Sockets)是双向通信信道的端点. 套接字可以在一个进程内,在同一机器上的进程之间,或者在不同主机的进程之间进行通信,主机可以是任何一台有连接互联网的机器. 套接字可以通过多种不同的 ...
- 基于python的聊天软件的设计与实现_Python基于TCP实现会聊天的小机器人功能示例...
本文实例讲述了Python基于TCP实现会聊天的小机器人功能.分享给大家供大家参考,具体如下: 一 代码 1.服务端程序 import socket words ={'how are you?':'F ...
- aes加密算法python语言实现_C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现[转载]...
原文:http://outofmemory.cn/code-snippet/35524/AES-with-javascript-java-csharp-python-or-php c#里面的AES加密 ...
- python实现非对称加密算法_Python使用rsa模块实现非对称加密与解密
Python使用rsa模块实现非对称加密与解密 1.简单介绍: RSA加密算法是一种非对称加密算法 是由已知加密密钥推导出解密密钥在计算上是不可行的"密码体制.加密密钥(即公开密钥)PK是公 ...
- python kivy显示图片_python基于Kivy写一个图形桌面时钟程序代码示例
本篇文章小编给大家分享一下python基于Kivy写一个图形桌面时钟程序代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Kivy 是一个开源的 ...
最新文章
- mariadb自动安装脚本
- 【OpenCV学习】抠图
- STM32F10x_硬件I2C读写EEPROM(标准外设库版本)
- Linux I/O模型
- 【Android】系统目录理解
- 小程序 php cookie,微信小程序使用Cookie
- GTK实现:俄罗斯方块小游戏源代码(RussiaCube.c)
- Error:Could not find common.jar (android.arch.core:common:1.0.0)
- matlab调用cuda,Matlab 调用CUDA的总结(Windows、Ubuntu)
- Spring入门学习推荐
- 飞鸽传书2007绿色版,提取、识别不同的重点
- Python判断素数 查找所有素数
- 页面添加蒙版,但是不影响页面其他事件响应
- 美国卡尔顿学院计算机专业怎么样,美国顶尖学院卡尔顿学院
- ubuntu 14.04+QT5.5+PyQt5.5+Eric-6开发环境搭建
- Windows 微信双开(批处理)
- C语言的结构体前置声明,?C语言的不完整类型和前置声明
- xbox sdk_因此,您只是获得了Xbox Xbox。 怎么办?
- OpenCV 2.图像入门:读取、显示、保存
- [日记]夜色中的雪世界
热门文章
- mysql链接出错_请配置/amysql/config.php文件_MySQL数据库之PHP连接mysql时mysql_connect()函数不可用...
- linux 关闭防火墙 centos7,centos7关闭防火墙和selinux
- Java数组实现五子棋功能
- [转]WCF绑定选择
- [上海]招募.net网站测试员(实习/见习)
- 查看sql server 数据库连接数
- python可以处理矩阵吗_Python 稀疏矩阵处理
- 栈——后缀表达式(洛谷 P1449)
- aix如何查看日志策略_aix的日志的一些操作理解
- 手机浏览器网址_苹果手机怎么登两个微信