Я написал некоторый код, используя библиотеку 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. Может ли кто-нибудь помочь мне понять, где я ошибаюсь?