我使用 pycrypt 库编写了一些代码,我一定做错了什么,但我不知道我做错了什么。我可以(几乎)用错误的初始化向量解密消息,即使我相信我正在遵循他们的例子。
from Crypto.Cipher import AES
import os
from string import ascii_letters
key, iv = os.urandom(32), os.urandom(16)
cipher = AES.new(key, AES.MODE_CBC, iv)
plaintext = ascii_letters
plaintext += ' ' * (-len(plaintext) % 16) # Padding
ciphertext = cipher.encrypt(plaintext)
cipher = AES.new(key, AES.MODE_CBC, os.urandom(16))
text = cipher.decrypt(ciphertext)
# text[16:] = b'qrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ '
现在,除了解密文本的前 16 个字节之外,您可以通过完全随机选择 IV 正确解密所有内容。有人可以帮我弄清楚我哪里出错了吗?