AES密码加密代码实现
时间: 2023-09-02 22:05:38 浏览: 56
以下是使用Python的PyCryptodome库实现AES加密的示例代码:
```python
from Crypto.Cipher import AES
import base64
# 加密函数
def aes_encrypt(key, text):
# 将密钥和明文转为bytes类型
key = bytes(key, encoding='utf-8')
text = bytes(text, encoding='utf-8')
# 补全明文长度为16的倍数
text_length = len(text)
add = 16 - (text_length % 16)
text += (b'\0' * add)
# 创建AES对象并进行加密
aes = AES.new(key, AES.MODE_ECB)
encrypt_text = aes.encrypt(text)
# 将加密后的bytes类型转为base64编码字符串并返回
return str(base64.b64encode(encrypt_text), encoding='utf-8')
# 解密函数
def aes_decrypt(key, encrypt_text):
# 将密钥和加密后的字符串转为bytes类型
key = bytes(key, encoding='utf-8')
encrypt_text = bytes(encrypt_text, encoding='utf-8')
# 将base64编码字符串转为bytes类型并解密
encrypt_text = base64.b64decode(encrypt_text)
# 创建AES对象并进行解密
aes = AES.new(key, AES.MODE_ECB)
decrypt_text = aes.decrypt(encrypt_text)
# 去掉补全的字符并将解密后的bytes类型转为字符串并返回
return str(decrypt_text.rstrip(b'\0'), encoding='utf-8')
```
使用方法:
```python
key = '1234567890123456'
text = 'hello world'
encrypt_text = aes_encrypt(key, text)
print('加密后的字符串:', encrypt_text)
decrypt_text = aes_decrypt(key, encrypt_text)
print('解密后的字符串:', decrypt_text)
```
其中,`key`为16、24或32字节的字符串,代表AES的密钥;`text`为要加密的明文字符串;`encrypt_text`为加密后的字符串;`decrypt_text`为解密后的字符串。