AES加密解密Python
时间: 2024-12-20 10:06:08 浏览: 3
AES(Advanced Encryption Standard)是一种对称加密算法,广泛应用于数据加密和解密。在Python中,可以使用`pycryptodome`库来实现AES加密和解密。以下是一个简单的示例,展示了如何在Python中使用AES进行加密和解密。
首先,确保安装了`pycryptodome`库:
```bash
pip install pycryptodome
```
然后,可以使用以下代码进行AES加密和解密:
```python
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from Crypto.Random import get_random_bytes
# 密钥长度必须为16, 24或32字节
key = get_random_bytes(16)
# 生成一个随机的初始化向量(IV)
iv = get_random_bytes(16)
# 创建一个AES加密器
cipher_encrypt = AES.new(key, AES.MODE_CBC, iv)
# 要加密的数据
data = b'Hello, AES!'
print(f'Plain text: {data}')
# 填充数据
padded_data = pad(data, AES.block_size)
# 加密数据
encrypted_data = cipher_encrypt.encrypt(padded_data)
print(f'Encrypted data: {encrypted_data}')
# 创建一个AES解密器
cipher_decrypt = AES.new(key, AES.MODE_CBC, iv)
# 解密数据
decrypted_padded_data = cipher_decrypt.decrypt(encrypted_data)
# 去除填充
decrypted_data = unpad(decrypted_padded_data, AES.block_size)
print(f'Decrypted data: {decrypted_data}')
```
在这个示例中,我们首先导入了必要的库,并生成了一个随机的密钥和初始化向量(IV)。然后,我们创建了一个AES加密器,并对数据进行加密。加密后的数据通过AES解密器进行解密,最终恢复了原始数据。
阅读全文