aes 128的python加解密算法
时间: 2023-07-25 20:09:25 浏览: 93
AES的加解密算法
以下是使用PyCryptodome库实现AES-128加解密的示例代码:
```python
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import base64
# 加密函数
def aes_encrypt(key, data):
cipher = AES.new(key.encode('utf-8'), AES.MODE_ECB)
encrypted_data = cipher.encrypt(pad(data.encode('utf-8'), AES.block_size))
return base64.b64encode(encrypted_data).decode('utf-8')
# 解密函数
def aes_decrypt(key, encrypted_data):
cipher = AES.new(key.encode('utf-8'), AES.MODE_ECB)
decrypted_data = cipher.decrypt(base64.b64decode(encrypted_data))
return unpad(decrypted_data, AES.block_size).decode('utf-8')
# 测试
key = '1234567890123456' # 16字节的AES密钥
data = 'hello world' # 待加密的数据
encrypted_data = aes_encrypt(key, data)
print('加密后的数据:', encrypted_data)
decrypted_data = aes_decrypt(key, encrypted_data)
print('解密后的数据:', decrypted_data)
```
其中,`pad`和`unpad`函数用于进行数据填充和去除填充。在AES加密中,需要对待加密的数据进行填充,以达到固定块大小的要求。而解密后需要去除填充数据。`base64`模块用于将二进制数据转换为可读的字符串,方便输出和传输。
阅读全文