aes加密算法python实现
时间: 2023-09-30 14:07:59 浏览: 53
aes加密算法python实现.md
以下是使用Python实现AES加密算法的示例代码:
```python
from Crypto.Cipher import AES
import base64
# 加密函数
def aes_encrypt(key, data):
# 将密钥转换为16、24、32位长度的bytes类型
key_bytes = bytes(key, encoding='utf-8')
key_length = len(key_bytes)
if key_length < 16:
add = b'\x00' * (16 - key_length)
key_bytes += add
elif 16 < key_length < 24:
add = b'\x00' * (24 - key_length)
key_bytes += add
else:
add = b'\x00' * (32 - key_length)
key_bytes += add
# 加密数据
cipher = AES.new(key_bytes, AES.MODE_ECB)
encrypted_bytes = cipher.encrypt(bytes(data, encoding='utf-8'))
# 将加密后的数据进行base64编码,并返回字符串类型
return str(base64.b64encode(encrypted_bytes), encoding='utf-8')
# 解密函数
def aes_decrypt(key, encrypted_data):
# 将密钥转换为16、24、32位长度的bytes类型
key_bytes = bytes(key, encoding='utf-8')
key_length = len(key_bytes)
if key_length < 16:
add = b'\x00' * (16 - key_length)
key_bytes += add
elif 16 < key_length < 24:
add = b'\x00' * (24 - key_length)
key_bytes += add
else:
add = b'\x00' * (32 - key_length)
key_bytes += add
# 将加密后的数据进行base64解码
encrypted_bytes = base64.b64decode(encrypted_data)
# 解密数据
cipher = AES.new(key_bytes, AES.MODE_ECB)
decrypted_bytes = cipher.decrypt(encrypted_bytes)
# 将解密后的数据转换为字符串类型,并返回
return str(decrypted_bytes.rstrip(b'\0'), encoding='utf-8')
```
使用示例:
```python
key = '1234567890abcdef' # 密钥,长度为16、24或32位
data = 'Hello, world!' # 待加密的数据
# 加密
encrypted_data = aes_encrypt(key, data)
print('加密后的数据:', encrypted_data)
# 解密
decrypted_data = aes_decrypt(key, encrypted_data)
print('解密后的数据:', decrypted_data)
```
阅读全文