Python怎么应对aes加密
时间: 2023-11-05 15:04:22 浏览: 72
在Python中,可以使用PyCryptodome库来进行AES加密和解密。以下是一个简单的示例:
```python
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
# 加密函数
def encrypt(key, plaintext):
cipher = AES.new(key, AES.MODE_CBC)
ciphertext = cipher.encrypt(pad(plaintext.encode(), AES.block_size))
return cipher.iv + ciphertext
# 解密函数
def decrypt(key, ciphertext):
iv = ciphertext[:AES.block_size]
cipher = AES.new(key, AES.MODE_CBC, iv=iv)
plaintext = unpad(cipher.decrypt(ciphertext[AES.block_size:]), AES.block_size)
return plaintext.decode()
# 测试
key = b'secretkey1234567' # 必须是16、24或32字节
plaintext = 'Hello, world!'
ciphertext = encrypt(key, plaintext)
print(ciphertext)
decrypted_text = decrypt(key, ciphertext)
print(decrypted_text)
```
在这个示例中,使用了CBC模式和PKCS#7填充。需要注意的是,加密和解密时使用的密钥必须相同,否则无法解密。另外,建议使用随机生成的IV来增加安全性。
阅读全文