python aes加密解密
时间: 2023-10-10 09:13:22 浏览: 100
在Python中使用AES加密和解密需要使用`pycryptodome`库。以下是一个简单的示例:
```python
from Crypto.Cipher import AES
import base64
def aes_encrypt(key, data):
cipher = AES.new(key.encode("utf8"), AES.MODE_ECB)
encrypted_bytes = cipher.encrypt(data.encode("utf8"))
encrypted_str = base64.b64encode(encrypted_bytes).decode("utf8")
return encrypted_str
def aes_decrypt(key, encrypted_str):
encrypted_bytes = base64.b64decode(encrypted_str)
cipher = AES.new(key.encode("utf8"), AES.MODE_ECB)
decrypted_bytes = cipher.decrypt(encrypted_bytes)
decrypted_str = decrypted_bytes.decode("utf8").rstrip('\0')
return decrypted_str
```
这里`key`是密钥,`data`是要加密的数据。`aes_encrypt`函数返回加密后的密文字符串,`aes_decrypt`函数返回解密后的明文字符串。
示例用的是ECB模式,如果需要使用其他模式,可以将`AES.MODE_ECB`替换成`AES.MODE_CBC`、`AES.MODE_CFB`等等。另外,需要注意的是,由于padding的影响,加密后的数据长度可能会比原来的数据长度长,解密时需要去掉padding部分的空字节。
阅读全文