aes加密算法python实现
时间: 2023-09-28 07:12:14 浏览: 87
aes加密算法python实现.md
下面是 Python 中使用 PyCryptodome 库实现 AES 加密算法的示例:
```python
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
# 加密函数
def aes_encrypt(key, data):
cipher = AES.new(key, AES.MODE_CBC) # CBC 模式需要指定初始向量 iv
ciphertext = cipher.encrypt(pad(data.encode('utf-8'), AES.block_size)) # 明文需要进行填充
return ciphertext, cipher.iv
# 解密函数
def aes_decrypt(key, iv, ciphertext):
cipher = AES.new(key, AES.MODE_CBC, iv=iv)
plaintext = unpad(cipher.decrypt(ciphertext), AES.block_size) # 解密后需要进行去填充
return plaintext.decode('utf-8')
```
其中 key 是密钥,data 是要加密的数据,iv 是初始向量,ciphertext 是加密后的密文。在加密时,需要将明文进行填充,然后指定 CBC 模式和初始向量进行加密。在解密时,需要指定 CBC 模式和初始向量进行解密,解密后需要去掉填充。
示例使用的是 AES-128,可以根据需要选择 AES-192 或 AES-256。
阅读全文