AES加密方式有多种,根据实际情况而定,下述代码为ECB模式,AES(256),pkcs7补全
Python3实现AES加密,需要安装pycryptodome第三方库。
安装方式:
pip install pycryptodome
#coding:utf8
from Crypto.Util.Padding import pad
from Crypto.Cipher import AES
import base64
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')
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
# key字符长度决定加密结果,长度16:加密结果AES(128),长度32:结果就是AES(256)
key = "16位倍数key"
# 加密字符串长同样需要16倍数:需注意,不过代码中pad()方法里,帮助实现了补全(补全方式就是pkcs7)
aes_str = "123456"
encryption_result = aes_cipher(key, aes_str)
print(encryption_result)

这里的方法是可以实现,AES五种加密模式(CBC、ECB、CTR、OCF、CFB)的
使用 AES.new()方法时,第二个参数可以选择AES的不同的加密模式,根据需要选择;
pad()方法的style参数(补全方式),同样是可以灵活变动的

![[python] AES-GCM加解密函数-微慑信息网-VulSee.com](https://vulsee.com/wp-content/uploads/2024/12/4a3de68ff9eca0a01bae73a7470170f3.png)


![[python]文本处理-微慑信息网-VulSee.com](https://vulsee.com/wp-content/uploads/2023/12/e036ea90943d8195df3aa3e2ad3db122.png)
![[python] 输出颜色 - colorama / termcolor [补充]-微慑信息网-VulSee.com](https://vulsee.com/wp-content/uploads/2023/10/3ce37224d46fae3bee75b135ba129c77.png)
![[vulsee.com] 使用openpyxl 读取xlsx中的网址链接-微慑信息网-VulSee.com](https://vulsee.com/wp-content/uploads/2023/06/92d3798abeb4baabf03ebcf81d50e73e.png)






![[八卦] 王婷婷—揭秘一个大三女生的性爱录像-微慑信息网-VulSee.com](http://free.86hy.com/crack/pic/1.jpg)
![[随笔]今天国际警察节-微慑信息网-VulSee.com](http://photo.sohu.com/20041017/Img222528326.jpg)

青云网
