python aes加解密
时间: 2023-10-29 11:00:21 浏览: 254
Python中可以使用PyCryptodome库来进行AES加解密操作。下面是一个示例代码:
```python
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
def aes_encrypt(key, data):
cipher = AES.new(key, AES.MODE_EAX)
nonce = cipher.nonce
ciphertext, tag = cipher.encrypt_and_digest(data.encode('utf-8'))
return nonce + ciphertext + tag
def aes_decrypt(key, encrypted_data):
nonce = encrypted_data[:16]
ciphertext = encrypted_data[16:-16]
tag = encrypted_data[-16:]
cipher = AES.new(key, AES.MODE_EAX, nonce)
decrypted_data = cipher.decrypt_and_verify(ciphertext, tag)
return decrypted_data.decode('utf-8')
# 生成随机的16字节密钥
key = get_random_bytes(16)
# 加密
data = "Hello, World!"
encrypted_data = aes_encrypt(key, data)
print("Encrypted data:", encrypted_data)
# 解密
decrypted_data = aes_decrypt(key, encrypted_data)
print("Decrypted data:", decrypted_data)
```
请注意,上述示例中使用的是AES-128算法,密钥长度为16字节。你可以通过更改`key`的长度来使用不同长度的密钥。另外,加密后的数据是二进制格式,如果需要转换为字符串,可以根据具体需求进行相应的编码和解码操作。
阅读全文