用独立的Python代码实现AES算法
时间: 2024-10-09 15:05:36 浏览: 33
AES(Advanced Encryption Standard)是一种对称加密算法,用于保护数据的安全性和隐私。在Python中,我们可以使用第三方库`cryptography`来方便地实现AES。以下是使用该库实现AES加密的基本步骤:
首先,你需要安装`cryptography`库,可以使用pip命令:
```bash
pip install cryptography
```
然后,你可以按照以下代码编写一个简单的AES加密示例:
```python
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
def pad_data(data, block_size=AES.block_size):
padding = block_size - len(data) % block_size
return data + bytes([padding]) * padding
def encrypt(data, key):
cipher = AES.new(key, AES.MODE_CBC)
iv = cipher.iv
encrypted_data = cipher.encrypt(pad_data(data))
return (iv, encrypted_data)
def decrypt(encrypted_data, key):
iv, encrypted_data = encrypted_data
cipher = AES.new(key, AES.MODE_CBC, iv=iv)
decrypted_data = cipher.decrypt(encrypted_data)
return decrypted_data.decode('utf-8')[:decrypted_data.index(b'\x00')] # Remove padding
# 使用示例
key = get_random_bytes(AES.key_size[0]) # Generate a random 256-bit key
data_to_encrypt = "Hello, AES!"
iv, ciphertext = encrypt(data_to_encrypt.encode('utf-8'), key)
print(f"Encrypted Data: {ciphertext.hex()}")
plaintext = decrypt(ciphertext, key)
print(f"Decrypted Data: {plaintext}")
```
在这个例子中,我们首先创建了一个随机的密钥,然后使用CBC模式(Cipher Block Chaining)进行了加密和解密操作。
阅读全文