Разные выходные данные для одного и того же оператора выполняются дважды в оболочке python с использованием библиотеки pycrypto

Я экспериментировал с библиотекой pycrypto с настройкой ниже. ОС: Ubuntu 16.04.2 x86_64 Python Версия:2.7.12 pycrypto версия: 2.6.1

Я не могу понять, почему есть разница в выводе 2-го последнего и 3-го последнего утверждения, хотя оба они абсолютно одинаковы. когда я запускаю этот оператор снова, вывод, показанный во втором последнем, повторяется. Я не могу воспроизвести это поведение, но мне интересно, что могло вызвать это.

>>> from Crypto.Cipher import AES
>>> obj = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456')
>>> message = "The answer is no"
>>> ciphertext = obj.encrypt(message)
>>> ciphertext
'\xd6\x83\x8dd!VT\x92\xaa`A\x05\xe0\x9b\x8b\xf1'
>>> obj2 = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456')
>>> obj2.decrypt(ciphertext)
'The answer is no'
>>> obj2.decrypt(obj.encrypt(message))
'The answer is no'
>>> obj.decrypt(obj.encrypt(message))
'\x0c\x14\xceA\x9cq\x8d\x07\xbb,\xa9G6\x14\x81s'
>>> obj2.decrypt(obj.encrypt(message))
'\x0c\x14\xceA\x9cq\x8d\x07\xbb,\xa9G6\x14\x81s'
>>> obj2.decrypt(obj.encrypt(message))
'The answer is no'
>>> obj2.decrypt(obj.encrypt(message))
'The answer is no'

0 ответов

Другие вопросы по тегам