怎么使用aes128进行加密
时间: 2023-11-14 19:07:15 浏览: 66
使用 AES-128 进行加密需要遵循以下步骤:
1. 选择一个随机的 128 位密钥,作为加密和解密的密钥。
2. 将明文按照 AES 的分组大小(128 位)进行分组。
3. 对每个分组进行加密,可以使用 ECB、CBC、CFB、OFB 等模式,这里以 CBC 模式为例。
4. 对每个分组进行加密前,需要先进行填充,常用的填充方式有 PKCS#7,ISO10126,ANSI X.923 等。
5. 对每个分组进行加密时,需要先与前一个加密分组进行异或运算,如果是第一个分组,则需要与一个称为 IV(初始化向量)的固定值进行异或运算。
6. 对加密后的密文进行传输或存储。
以下是 Python 代码示例:
```python
from Crypto.Cipher import AES
import base64
def aes_encrypt(key, iv, plaintext):
cipher = AES.new(key, AES.MODE_CBC, iv)
# 对明文进行填充
plaintext = plaintext + (16 - len(plaintext) % 16) * chr(16 - len(plaintext) % 16)
ciphertext = cipher.encrypt(plaintext.encode('utf-8'))
# Base64 编码密文
return base64.b64encode(ciphertext).decode('utf-8')
key = b'0123456789abcdef'
iv = b'0123456789abcdef'
plaintext = 'Hello, world!'
ciphertext = aes_encrypt(key, iv, plaintext)
print(ciphertext)
```
其中,`key` 和 `iv` 都是 16 字节的二进制数据,`plaintext` 是要加密的明文字符串。