`
cakin24
  • 浏览: 1387995 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

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.')
1
0
分享到:
评论

相关推荐

    Python基于pycrypto实现的AES加密和解密算法示例

    本文实例讲述了Python基于pycrypto实现的AES加密和解密算法。分享给大家供大家参考,具体如下: 一 代码 # -*- coding: UTF-8 -*- import string import random from Crypto.Cipher import AES def keyGenerater...

    Python使用PyCrypto实现AES加密功能示例

    PyCrypto库提供了AES加密的功能,使得开发者能够方便地在Python中实现加密和解密操作。本篇文章将深入讲解如何使用PyCrypto库实现AES加密。 首先,导入必要的模块:`Crypto.Cipher.AES`用于AES加密,`base64`用于...

    python27模块pycrypto用于aes加密,安装简单

    pycrypto-2.6.win-amd64-py2.7,这个资源是Python27环境下的,用于aes加解密,网上下载的好多都用不了,用pip安装也是报错。 这个是我亲自测试能用的,而且安装简单,下一步下一步即可。 上传备用,同时又需要的也...

    Python加密与解密

    Python中可以使用PyCrypto或cryptography库实现AES加密解密。 2. RSA:RSA是非对称加密算法,用于公钥基础设施(PKI)。它包含一对密钥——公钥和私钥,公钥用于加密,私钥用于解密。 3. SHA哈希:SHA(安全哈希算法...

    python实现AES加密与解密

    AES加密方式有五种:ECB, CBC, CTR, CFB, OFB 从安全性角度推荐CBC加密方法,本文介绍了CBC,ECB两种加密方法的python实现 python 在 Windows下使用AES时要安装的是pycryptodome 模块  pip install pycryptodome ...

    Python AES 加密

    简单AES类,实现AES加密/解密,需要pycrypto支持.

    RSA和AES混合加密demo

    2. **AES加密库**:可能包含了用于执行AES加密的库文件,如OpenSSL或PyCrypto等。 3. **混合加密示例代码**:演示如何使用编程语言(如Python、Java或C++)将RSA和AES结合,实现数据的加密和解密过程。 4. **测试...

    python实现简单的加密通信

    要使用PyCrypto实现AES加密通信,首先需要导入相应的模块: ```python from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad ``` 接下来,我们需要创建一个密钥,用于加密和解密数据。AES...

    文本文件加密与解密应用

    对称加密(如AES、DES)使用同一密钥进行加密和解密,速度快但密钥管理困难。非对称加密(如RSA、ECC)使用一对公钥和私钥,公钥用于加密,私钥用于解密,安全性更高但计算复杂度大。 2. **哈希函数**:在文本文件...

    Python 的AES加密与解密实现

    在Python环境中,可以使用`pycryptodome`或`pycrypto`库来实现AES加密。以下分别介绍ECB和CBC模式的具体实现。 ##### 4.1 安装所需库 在Windows环境下,建议安装`pycryptodome`库: ```bash pip install ...

    加密解密实例

    例如,使用Python的PyCrypto库,Java的JCE框架,或者C++的OpenSSL库进行加密解密操作。开发者需要理解这些库提供的函数和方法,以及如何正确地集成到他们的代码中。 此外,实例可能还会涉及一些高级主题,如哈希...

    Python在网络安全加密解密领域中应用研究-吉强.pdf

    这得益于 Python 提供了一些强大的内置函数和第三方库,使得编写和实现加密算法变得更加简单和高效。本文将会介绍 Python 在加密解密领域的三种常用方法,并结合应用和实践介绍了如何基于 Python 实现对称加密、非...

    图片加密解密 批量加密解密

    4. **批量处理**:实现批量加密解密功能,可能涉及文件遍历、文件操作和多线程处理等编程技巧,以提高处理速度。 5. **用户界面设计**:如果是一个软件应用,还需要考虑用户界面的友好性,提供简单易用的操作流程。...

    pycrypto-2.6.1-cp35win_amd64.zip

    在Pycrypto中,AES的加密和解密操作可以通过`Crypto.Cipher.AES`模块实现。首先,需要生成一个密钥,然后创建一个AES实例。AES有三种工作模式:ECB(Electronic Codebook)、CBC(Cipher Block Chaining)和CFB...

    Python项目开发实战_PyCrypto模块-数据加密_编程案例解析实例详解课程教程.pdf

    总的来说,PyCrypto为Python开发者提供了全面的加密工具,无论是需要快速实现简单的AES加密,还是进行复杂的RSA非对称加密,PyCrypto都能满足需求。在实际项目开发中,结合Python的易用性,PyCrypto成为实现数据安全...

    python aes算法库

    Python AES(Advanced Encryption Standard)算法库是用于加密和解密数据的强大工具,它基于标准的AES规范,提供了在Python环境中实现AES加密算法的各种功能。AES是一种块密码,它使用固定大小的128位(16字节)块对...

    pycrypto-2.6.1-cp36-cp36m

    PyCrypto提供了AES的实现,可以进行ECB(Electronic Codebook)、CBC(Cipher Block Chaining)、CFB(Cipher Feedback)、OFB(Output Feedback)和CTR(Counter)模式的加密和解密。 2. **RSA**:RSA是非对称加密...

Global site tag (gtag.js) - Google Analytics