Python AES шифровать / дешифровать не возвращает те же результаты - PullRequest
3 голосов
/ 22 февраля 2012

Пример кода ниже не возвращает исходный текст после операции шифрования / дешифрования, и я пытаюсь выяснить, почему

from Crypto.Cipher import AES

text = """This is plain text 
to use.
It should be exqctly 128 characters long to avoid padding and it is split
with new lines as in 
file"""

password = "password........"

block = 32
mode = AES.MODE_CBC

enc = AES.new(password, mode)

encrypted = enc.encrypt(text)

print "ORIGINAL: " + text

print "ENCRYPTED: " + str(encrypted)

print "DECRYPTED: " + str(enc.decrypt(encrypted))

Можно ли сказать, почему первая часть текста искажена?

1 Ответ

4 голосов
/ 22 февраля 2012

Я думаю, вам нужно сбросить вектор инициализации ( IV ), чтобы получить желаемый результат.Самый простой способ - создать новый объект AES для расшифровки:

enc = AES.new(password, mode)
encrypted = enc.encrypt(text)
print "ORIGINAL: " + text
print "ENCRYPTED: " + str(encrypted)
dec = AES.new(password, mode)
print "DECRYPTED: " + str(dec.decrypt(encrypted))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...