这个示例演示了如何使用AES对文本进行加密和解密。请注意以下几点:
- 选择AES算法和工作模式(这里使用CBC模式)。
- 对文本进行填充,以适应AES块大小。
- 使用Base64编码转换二进制数据,以便在不丢失数据的情况下进行文本表示。
- 在解密时,要去除填充以还原原始文本。
在实际应用中,请谨慎保存和处理密钥。密钥的安全性对于AES的安全性至关重要。
三、ECB模式
当使用 AES 加密时,工作模式是影响加密结果的一个重要因素。ECB(Electronic Codebook)模式是最简单的工作模式,它将明文分割成块,并对每个块独立加密。这里给出一个在 ECB 模式下的 AES 加解密的例子:
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from base64 import b64encode, b64decode
def encrypt_text_ecb(key, text):
cipher = Cipher(algorithms.AES(key), modes.ECB(), backend=default_backend())
encryptor = cipher.encryptor()
text_padded = text + " " * (16 - len(text) % 16)
ciphertext = encryptor.update(text_padded.encode()) + encryptor.final