aes加密 python
时间: 2024-05-11 22:13:10 浏览: 146
AES(Advanced Encryption Standard)是一种对称加密算法,使用相同的密钥对数据进行加密和解密。在 Python 中,可以使用 PyCryptodome 库进行 AES 加密和解密操作。下面是一个简单的示例:
```python
from Crypto.Cipher import AES
# 定义加密函数
def aes_encrypt(key, data):
cipher = AES.new(key, AES.MODE_ECB)
padded_data = data + (16 - len(data) % 16) * chr(16 - len(data) % 16)
ciphertext = cipher.encrypt(padded_data.encode())
return ciphertext
# 定义解密函数
def aes_decrypt(key, ciphertext):
cipher = AES.new(key, AES.MODE_ECB)
plaintext = cipher.decrypt(ciphertext).decode()
return plaintext.rstrip(chr(ord(plaintext[-1]) & 0xff))
# 测试
key = b'0123456789abcdef' # 密钥,必须是 16、24 或 32 字节
data = 'hello world'
ciphertext = aes_encrypt(key, data)
plaintext = aes_decrypt(key, ciphertext)
print('加密前:', data)
print('加密后:', ciphertext.hex())
print('解密后:', plaintext)
```
其中,`key` 是密钥,必须是 16、24 或 32 字节;`data` 是要加密的数据,`ciphertext` 是加密后的密文,`plaintext` 是解密后的明文。在加密时,需要对数据进行填充以满足块大小要求;在解密时,需要去除填充。
阅读全文