用python写aes的加解密编程
时间: 2025-01-04 13:37:14 浏览: 2
在Python中,我们可以使用`cryptography`库来实现AES(Advanced Encryption Standard)加密和解密。以下是简单的例子:
首先,你需要安装这个库,如果还没有安装,可以使用pip命令安装:
```bash
pip install cryptography
```
然后,你可以使用以下代码来进行AES加解密操作:
```python
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from base64 import b64encode, b64decode
# AES算法的基本参数
key = b'This is a secret key 1234567890' # 需要16字节(128位),这里为了演示用的是固定的字符串
cipher_mode = AES.MODE_CBC # 使用CBC模式,需要一个初始化向量(IV)
def encrypt(plaintext, iv):
cipher = AES.new(key, cipher_mode, iv)
ciphertext = cipher.encrypt(pad(plaintext.encode('utf-8'), AES.block_size))
return b64encode(iv + ciphertext)
def decrypt(ciphertext_base64, iv_base64):
iv = b64decode(iv_base64)
ciphertext = b64decode(ciphertext_base64)
decipher = AES.new(key, cipher_mode, iv)
plaintext = unpad(decipher.decrypt(ciphertext), AES.block_size)
return plaintext.decode('utf-8')
# 示例
plaintext = 'Hello, AES encryption!'
iv = os.urandom(16) # 使用随机生成的初始化向量
encrypted_text = encrypt(plaintext, iv)
decrypted_text = decrypt(encrypted_text, iv)
print(f"原始文本: {plaintext}")
print(f"加密后的文本 (Base64): {encrypted_text.decode()}")
print(f"解密后的文本: {decrypted_text}")
```
在这个示例中,我们首先生成了一个随机的初始化向量(IV),然后将明文加密并添加到IV之后,形成一个Base64编码的字符串。解密时,我们需要先从Base64字符串中分离出IV,然后再用相同的key和IV对密文进行解密。
阅读全文