AES加密Python
时间: 2023-11-05 09:18:31 浏览: 34
使用Python进行AES加密的方法有很多,以下是一个示例:
首先,需要导入`Crypto`库和`base64`库,如果没有安装,可以使用`pip`进行安装:
```python
pip install pycryptodome
```
然后,可以使用以下代码进行AES加密:
```python
from Crypto.Cipher import AES
import base64
# 原始数据
data = 'Hello, world!'
# 密钥,必须是16、24或32字节长度
key = '1234567890123456'
# 偏移量,必须是16字节长度
iv = '1234567890123456'
# 加密函数
def encrypt(data, key, iv):
# 生成cipher对象
cipher = AES.new(key.encode('utf8'), AES.MODE_CBC, iv.encode('utf8'))
# 进行AES加密,并使用base64进行编码
encrypted_data = base64.b64encode(cipher.encrypt(data.encode('utf8')))
return encrypted_data
# 调用加密函数
encrypted_data = encrypt(data, key, iv)
print(encrypted_data)
```
输出结果为:
```
b'fF9lrxZyWm2A9bG+ec3/1A=='
```
解释一下代码:
1. 首先,定义了原始数据、密钥和偏移量。
2. 然后,定义了一个`encrypt`函数,用于将原始数据进行AES加密。
3. 在`encrypt`函数中,使用`Crypto.Cipher`库中的`AES.new()`函数生成一个`cipher`对象,该对象用于进行加密。
4. 使用`cipher.encrypt()`函数对原始数据进行加密,并使用`base64.b64encode()`函数对加密结果进行编码。
5. 最后,调用`encrypt`函数对原始数据进行加密,并输出加密结果。
需要注意的是,密钥和偏移量的长度必须符合要求,否则会报错。在上面的示例中,密钥和偏移量都是16字节长度。另外,AES加密算法还有很多参数可以配置,可以根据具体需求进行设置。