使用Python3实现AES(256)加密,ECB模式,pkcs7补全

AES加密方式有多种,根据实际情况而定,下述代码为ECB模式,AES(256),pkcs7补全

Python3实现AES加密,需要安装pycryptodome第三方库。

安装方式:

pip install pycryptodome

代码:

from Crypto.Util.Padding import pad
from Crypto.Cipher import AES


def aes_cipher(key, aes_str):
# 使用key,选择加密方式
aes = AES.new(key.encode('utf-8'), AES.MODE_ECB)
pad_pkcs7 = pad(aes_str.encode('utf-8'), AES.block_size, style='pkcs7') # 选择pkcs7补全
encrypt_aes = aes.encrypt(pad_pkcs7)
# 加密结果
encrypted_text = str(base64.encodebytes(encrypt_aes), encoding='utf-8') # 解码
encrypted_text_str = encrypted_text.replace("\n", "")
# 此处我的输出结果老有换行符,所以用了临时方法将它剔除

return encrypted_text_str


if __name__ == '__main__':
# key的长度需要补长(16倍数),方法可以借鉴其它文章,补全方式根据情况而定,此处我手动以‘0’补全的32
# key字符长度决定加密结果,16AES(128),32AES(256)
key = "ABCDEFGHIJKLMN000000000000000000"
# 加密字符串长同样需要16倍数,代码中pad()方法直接实现了
aes_str = "abc"
encryption_result = aes_cipher(key, aes_str)
print(encryption_result)

方法粗略,根据需要请改进!ECB

猜你喜欢

转载自www.cnblogs.com/shenzhuang/p/10302182.html