Ошибка 3 при шифровании в режиме CB C Python Ошибка AES - PullRequest
0 голосов
/ 13 июля 2020

Я использую pycryptodome для шифрования и дешифрования сообщения. Ниже приведен код:

from Crypto.Cipher import AES

obj = AES.new('secret key 12345'.encode("utf-8"), AES.MODE_CBC, 'This is an IV456'.encode("utf-8"))
message = "The answer is no".encode("utf-8")
encryptedmsg = obj.encrypt(message)


obj2 = AES.new('secret key 12345'.encode("utf-8"), AES.MODE_CBC, 'This is an IV456'.encode("utf-8"))
t = obj2.decrypt(encryptedmsg)
print(t)

Теперь приведенный выше код отлично работает. Я заметил, что если вы зашифруете сообщение, длина которого больше или меньше ключа, вы получите ошибку Error 3 while encrypting in CBC mode. Например, в этом случае секретным ключом является secret key 12345, который имеет длину 16. Теперь, если мы создадим какое-либо сообщение длиной 16, оно будет работать нормально, но если длина сообщения 15 или 17, то будет выдана эта ошибка.

Почему такое поведение и как решить эту проблему.

...