AES对称加密算法python
时间: 2023-12-07 11:40:08 浏览: 104
以下是使用Python实现AES对称加密算法的示例代码:
```python
from Crypto.Cipher import AES
import base64
# 加密函数
def encrypt(text, key):
# 将密钥转换为16字节长度的bytes类型
key = key.encode('utf-8')
key = key.ljust(16, b'\0')
# 将明文转换为bytes类型
text = text.encode('utf-8')
# 使用AES加密算法进行加密
cipher = AES.new(key, AES.MODE_ECB)
encrypted_text = cipher.encrypt(text)
# 将加密后的bytes类型数据转换为base64编码的字符串
encrypted_text = base64.b64encode(encrypted_text).decode('utf-8')
return encrypted_text
# 解密函数
def decrypt(encrypted_text, key):
# 将密钥转换为16字节长度的bytes类型
key = key.encode('utf-8')
key = key.ljust(16, b'\0')
# 将密文转换为bytes类型
encrypted_text = base64.b64decode(encrypted_text)
# 使用AES加密算法进行解密
cipher = AES.new(key, AES.MODE_ECB)
decrypted_text = cipher.decrypt(encrypted_text)
# 将解密后的bytes类型数据转换为字符串
decrypted_text = decrypted_text.decode('utf-8')
return decrypted_text
# 测试
text = 'Hello, world!'
key = '1234567890123456'
encrypted_text = encrypt(text, key)
print('加密后的密文:', encrypted_text)
decrypted_text = decrypt(encrypted_text, key)
print('解密后的明文:', decrypted_text)
```
上述代码使用了Python的`Crypto`库实现了AES对称加密算法。其中,`encrypt`函数用于加密明文,`decrypt`函数用于解密密文。在加密和解密过程中,需要使用相同的密钥。在本例中,密钥为16字节长度的字符串。
阅读全文