一 代码
# -*- 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.')
相关推荐
本文实例讲述了Python基于pycrypto实现的AES加密和解密算法。分享给大家供大家参考,具体如下: 一 代码 # -*- coding: UTF-8 -*- import string import random from Crypto.Cipher import AES def keyGenerater...
pycrypto-2.6.win-amd64-py2.7,这个资源是Python27环境下的,用于aes加解密,网上下载的好多都用不了,用pip安装也是报错。 这个是我亲自测试能用的,而且安装简单,下一步下一步即可。 上传备用,同时又需要的也...
AES加密方式有五种:ECB, CBC, CTR, CFB, OFB 从安全性角度推荐CBC加密方法,本文介绍了CBC,ECB两种加密方法的python实现 python 在 Windows下使用AES时要安装的是pycryptodome 模块 pip install pycryptodome ...
简单AES类,实现AES加密/解密,需要pycrypto支持.
PyCrypto模块有许多加密算法,可以对传输的信息进行加密使用python语言对数据进行加密、解密。包括DES、DES3、AES、RSA等等
本文实例讲述了python实现无证书加密解密的方法,分享给大家供大家参考。具体实现方法如下: 无证书加密就是双方不需要维护证书,加密与解密只需要双方约定一个key就可以,无证书加解密的方式应用更广泛一些,python...
常会要到加密算法AES(Advanced Encryption Standard),下面是Python和PHP的实现。Python需要安Crypto库(pip install pycrypto或访问)PHP需要安装mcrypt扩展说明加密模式采用AES/CBC/PKCS7Padding注意:加密后的字节...
密码技术的用途主要源于两个方面,加密/解密和签名/验签 在信息传播中,通常有发送者,接受者和窃听者三个角色。假设发送者Master想要写信给接受者Ghost,可是又不想信的内容被别人看到,因此Master需要先对信加密,...
诺克斯Python AES 文件加密。 使用 PyCrypto 工具包进行文件加密/解密的简单脚本。... 可选参数: -e, --encrypt 加密文件-d, --decrypt 解密文件-f, --file 要加密/解密的文件-p, --path 批量加密的路径和目录名
本文实例讲述了Python实现对字符串的加密解密方法。分享给大家供大家参考,具体如下: 需求是是要将密码存在数据库里,所以要加密解密是可逆的,在数据库里不要有特殊字符,防止数据库备份和恢复中出错。 安装...
简单的拖放文件加密工具。 基于python并使用PyCrypto使用AES加密对输入的文件进行加密。 然后生成带有唯一密钥的 sqlite 数据库文件,以将加密的文件和文件夹存储在二进制 blob 中,以便以后解密。
该程序使用FaceRecognition库和AES加密技术来完成这两项工作。 只能使用您的FaceID访问该文件。 这个怎么运作? 运行Face.py 会要求您首次输入两步验证密码(注册您的密码) 关闭程序运行Face.py,它将检测到您的脸...
IBM Security Identity Manager加密和解密工具如果您需要恢复加密的ISIM密码或使用其他密钥对其进行重新加密,这就是您需要的工具集。 另外,您拥有一个用于解密ISIM适配器发行版的工具(以防您不想浪费时间与IBM...
非对称加密(和解密)使用 RSA 算法,对称加密(以及解密)在 CFB 模式下使用 AES。 有关该主题的更多信息,您可以查看 LaTeX 文件夹中的 PDF(尽管它是葡萄牙语)。 这些程序是用Python 2.7编写的,需要 PyCrypto...
该概念基于Cryptopuck无法解密文件,并且用户可以声称自己无法解密文件。 这是因为可以存储文件的私钥无法存储,无法远程存储。 因此,它可能不会受到可能对加密文件进行加密的Cryptopuck设备的犯罪者的破坏。 但是...
NetUSB客户端和服务器之间相互身份验证的对称加密/解密密钥。 AESKey = "\x5c\x13\x0b\x59\xd2\x62\x42\x64\x9e\xd4\x88\x38\x2d\x5e\xae\xcc" 使用WinDbg调试NetgearUDSTcpBus.sys驱动程序 bu NetgearUDSTcpBus+...