目录
一、python 代码实现如下:
二、代码解析
三、运行结果
一、python 代码实现如下:
#AES_ECB模式实现
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes # 自动生成密钥
from Crypto.Util.Padding import pad, unpad
# pad 填充, unpad 解填充
from base64 import b64encode, b64decode# pad 缺几个字符就填充几个字符
key = get_random_bytes(16)def encrypt_ecb(data):# 随机生成密钥aes = AES.new(key, AES.MODE_ECB) # (密钥, 加密模式)res = aes.encrypt(pad(data, 16))return resdef decrypt_ecb(data):aes = AES.new(key, AES.MODE_ECB) # (密钥, 解密模式)res = aes.decrypt(b64decode(data))# 如果不进行解填充,后面就会有奇怪的字符return unpad(res, 16).decode()if __name__ == '__main__':print(b64encode(key))encrypt_data = b64encode(encrypt_ecb('Hello World!'.encode())).decode() # Data must be aligned to block boundary in ECB mode (块大小不足ECB模式)print(encrypt_data)decrypt_data = decrypt_ecb(encrypt_data)print(decrypt_data)
二、代码解析
1、先对“Hello World!”字节数据进行AES_ECB模式加密;
2、再对加密后的数据密文进行解密,看能否得到“HelloWorld!”