aes加密算法python实现
时间: 2023-09-30 19:07:59 浏览: 97
以下是Python中使用AES加密算法的示例代码:
```python
from Crypto.Cipher import AES
import base64
# 填充函数,使加密数据的长度是16的倍数
def add_to_16(value):
while len(value) % 16 != 0:
value += '\0'
return str.encode(value) # 返回bytes
# 加密函数
def encrypt(key, text):
aes = AES.new(add_to_16(key), AES.MODE_ECB) # 初始化AES加密器
encrypt_aes = aes.encrypt(add_to_16(text)) # 加密
encrypted_text = str(base64.encodebytes(encrypt_aes), encoding='utf-8').replace('\n', '') # base64 encode
return encrypted_text
# 解密函数
def decrypt(key, text):
aes = AES.new(add_to_16(key), AES.MODE_ECB) # 初始化AES加密器
base64_decrypted = base64.decodebytes(bytes(text, encoding='utf-8')) # base64 decode
decrypted_text = str(aes.decrypt(base64_decrypted), encoding='utf-8').replace('\0', '') # 解密
return decrypted_text
```
使用示例:
```python
key = '1234567890123456' # 加密密钥,必须是16、24或32个字符长度
text = 'hello world' # 待加密的文本
encrypted_text = encrypt(key, text)
print('加密后的文本:', encrypted_text)
decrypted_text = decrypt(key, encrypted_text)
print('解密后的文本:', decrypted_text)
```
注意事项:
- 加密密钥必须是16、24或32个字符长度,否则会报错;
- 加密后的文本是base64编码的字符串,需要进行解码后才能得到原始文本。
阅读全文