本文实例讲述了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加密和解密算法示例相关推荐

  1. 基于Python实现的RSA加密和解密算法

    目录 第 一部分 RSA 加密和解密算法 1 算法原理 1 1.1 RSA 原理概述 1 用中国剩余定理CRT对RSA运算进行加 2 代码实现 2 2.1 RSA 代码实现 2 2.2 CRT-RSA ...

  2. 相似度计算 java_Java基于余弦方法实现的计算相似度算法示例

    Java基于余弦方法实现的计算相似度算法示例 引导语:Java 编程语言的风格十分接近C.C++语言.Java是一个纯的面向对象的程序设计语言,以下是小编整理的Java基于余弦方法实现的`计算相似度算 ...

  3. python加密库_python基于pyDes库实现des加密的方法

    本文实例讲述了python基于pyDes库实现des加密的方法.分享给大家供大家参考,具体如下: 下载及简介地址:https://twhiteman.netfirms.com/des.html 如需要 ...

  4. des加密算法python代码_python des加密算法代码(pydes模块加密)

    python加密解密模块:pyDES模块,用来提供 DES.Triple-DES 的加密算法. 专题教程: DES加密算法,DES加密解密 python des加密解密算法 例子,Python DES ...

  5. python实现简易聊天需要登录博客园zip下载_Python基于Socket实现简易多人聊天室的示例代码...

    前言 套接字(Sockets)是双向通信信道的端点. 套接字可以在一个进程内,在同一机器上的进程之间,或者在不同主机的进程之间进行通信,主机可以是任何一台有连接互联网的机器. 套接字可以通过多种不同的 ...

  6. 基于python的聊天软件的设计与实现_Python基于TCP实现会聊天的小机器人功能示例...

    本文实例讲述了Python基于TCP实现会聊天的小机器人功能.分享给大家供大家参考,具体如下: 一 代码 1.服务端程序 import socket words ={'how are you?':'F ...

  7. aes加密算法python语言实现_C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现[转载]...

    原文:http://outofmemory.cn/code-snippet/35524/AES-with-javascript-java-csharp-python-or-php c#里面的AES加密 ...

  8. python实现非对称加密算法_Python使用rsa模块实现非对称加密与解密

    Python使用rsa模块实现非对称加密与解密 1.简单介绍: RSA加密算法是一种非对称加密算法 是由已知加密密钥推导出解密密钥在计算上是不可行的"密码体制.加密密钥(即公开密钥)PK是公 ...

  9. python kivy显示图片_python基于Kivy写一个图形桌面时钟程序代码示例

    本篇文章小编给大家分享一下python基于Kivy写一个图形桌面时钟程序代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Kivy 是一个开源的 ...

最新文章

  1. mariadb自动安装脚本
  2. 【OpenCV学习】抠图
  3. STM32F10x_硬件I2C读写EEPROM(标准外设库版本)
  4. Linux I/O模型
  5. 【Android】系统目录理解
  6. 小程序 php cookie,微信小程序使用Cookie
  7. GTK实现:俄罗斯方块小游戏源代码(RussiaCube.c)
  8. Error:Could not find common.jar (android.arch.core:common:1.0.0)
  9. matlab调用cuda,Matlab 调用CUDA的总结(Windows、Ubuntu)
  10. Spring入门学习推荐
  11. 飞鸽传书2007绿色版,提取、识别不同的重点
  12. Python判断素数 查找所有素数
  13. 页面添加蒙版,但是不影响页面其他事件响应
  14. 美国卡尔顿学院计算机专业怎么样,美国顶尖学院卡尔顿学院
  15. ubuntu 14.04+QT5.5+PyQt5.5+Eric-6开发环境搭建
  16. Windows 微信双开(批处理)
  17. C语言的结构体前置声明,?C语言的不完整类型和前置声明
  18. xbox sdk_因此,您只是获得了Xbox Xbox。 怎么办?
  19. OpenCV 2.图像入门:读取、显示、保存
  20. [日记]夜色中的雪世界

热门文章

  1. mysql链接出错_请配置/amysql/config.php文件_MySQL数据库之PHP连接mysql时mysql_connect()函数不可用...
  2. linux 关闭防火墙 centos7,centos7关闭防火墙和selinux
  3. Java数组实现五子棋功能
  4. [转]WCF绑定选择
  5. [上海]招募.net网站测试员(实习/见习)
  6. 查看sql server 数据库连接数
  7. python可以处理矩阵吗_Python 稀疏矩阵处理
  8. 栈——后缀表达式(洛谷 P1449)
  9. aix如何查看日志策略_aix的日志的一些操作理解
  10. 手机浏览器网址_苹果手机怎么登两个微信