AES算法 python
时间: 2023-09-13 20:05:48 浏览: 95
AES算法-python
使用 Python 实现 AES 算法可以使用 PyCryptodome 库。以下是一个简单的例子:
```python
from Crypto.Cipher import AES
key = b'This is a secret key'
cipher = AES.new(key, AES.MODE_EAX)
text = b'Hello World'
ciphertext, tag = cipher.encrypt_and_digest(text)
# 解密
cipher = AES.new(key, AES.MODE_EAX, nonce=cipher.nonce)
decrypted_text = cipher.decrypt_and_verify(ciphertext, tag)
print(decrypted_text) # 输出 b'Hello World'
```
在上面的例子中,我们使用了 `Crypto.Cipher` 模块中的 AES 加密算法。首先定义了一个密钥 `key`,然后使用 `AES.new()` 方法创建一个 `cipher` 实例。接着,我们将要加密的明文 `text` 作为参数传递给 `encrypt_and_digest()` 方法并执行加密操作。此方法返回加密后的密文 `ciphertext` 和一个校验值 `tag`。
为了解密,我们需要使用 `AES.new()` 方法创建一个新的 `cipher` 实例,并传递之前生成的随机数 `nonce`。然后,我们使用 `decrypt_and_verify()` 方法将密文 `ciphertext` 和校验值 `tag` 作为参数传递给它,以执行解密操作。最后,我们将解密后的明文输出到控制台。
请注意,AES 加密算法需要使用一个 16、24 或 32 字节的密钥。在此示例中,我们使用了一个 16 字节的密钥。如果需要使用其他密钥长度,请参考 PyCryptodome 库的文档。
阅读全文