aes128位python算法
时间: 2023-07-10 21:27:34 浏览: 146
AES算法-python
以下是使用Python实现AES-128加密和解密的示例代码:
```
from Crypto.Cipher import AES
import base64
# 加密函数
def encrypt_AES(key, data):
cipher = AES.new(key, AES.MODE_ECB)
pad = lambda s: s + (AES.block_size - len(s) % AES.block_size) * chr(AES.block_size - len(s) % AES.block_size)
data = pad(data)
encrypted_bytes = cipher.encrypt(data.encode())
encrypted_str = base64.b64encode(encrypted_bytes).decode()
return encrypted_str
# 解密函数
def decrypt_AES(key, data):
cipher = AES.new(key, AES.MODE_ECB)
encrypted_bytes = base64.b64decode(data)
decrypted_bytes = cipher.decrypt(encrypted_bytes)
decrypted_str = decrypted_bytes.decode().rstrip('\0')
return decrypted_str
# 测试样例
key = '1234567890123456' # 16位密钥
data = 'Hello, world!'
encrypted_data = encrypt_AES(key, data)
print('加密后的数据:', encrypted_data)
decrypted_data = decrypt_AES(key, encrypted_data)
print('解密后的数据:', decrypted_data)
```
在以上代码中,`encrypt_AES`函数用于加密数据,`decrypt_AES`函数用于解密数据。这里使用AES的ECB模式进行加密和解密。密钥长度为16位,如果需要更高的安全性,可以使用更长的密钥。
阅读全文