2014-11-13 5 views
0

Я работаю над сценарием питона, который шифрует текст с помощью алгоритма 128-AES, но у меня есть проблема:Python AES шифрования текста сценария

Изображение показывает мои процессы сценария. Это прекрасно работает в дешифровке, когда я даю неправильные выходные десятичные значения выхода, выходящие за пределы диапазона ASCII, поэтому программа не может отображать текст на выходе.
Я ожидал неправильного текста! Это неправильно с кодом, или это должно быть так?

enter image description here

+2

Слово предупреждения: делать свою собственную реализацию AES является потенциально опасным ; даже несмотря на то, что алгоритмы AES (и аналогичные) открыты на 100%, в реализациях часто появляются ошибки, которые могут дешифровать зашифрованный текст без ключа тривиально простым. Хотя это отличный учебный проект, вы, вероятно, не хотите использовать свой код для шифрования файлов. – Carpetsmoker

ответ

1

Это нормально, потому что AES (и большинство современных криптосистем) имеет дело с шифрованием фактических значений байтов, а не значения ASCII. С неправильным ключом данные не будут дешифрованы правильно, что приведет к диапазонам за пределами обычных значений ASCII.

Если вы ищете что-то, что шифрует/расшифровывает ASCII, смотрите в некоторые из «классических» шифров: Цезарь сдвиг, Vigenere и т.д.

+1

Просто добавлю, что правильный термин для упомянутых «классических» шифров - «классические/полиалфавитные шифры». – go2

+0

Я использовал шестнадцатеричные значения ASCII, потому что почти все ссылки на шифрование AES ссылались на следующие примеры: '5e390f7df7a69296a7553dc10aa31f6b' Так что я думал, что они могут быть значениями ASCII. – HBS

+1

Это потому, что он не агностик, поэтому он имеет дело с байтами (шифрование файлов, потоки ввода-вывода и т. Д.), А также ссылки и (хорошие) руководства также обсуждают алгоритм и детали низкого уровня. Вы можете использовать функции 'unhexlify' и' hexlify' в библиотеке 'binascii' в Python для преобразования взад и вперед. 'hex_plaintext = binascii.hexlify (message)' https://docs.python.org/3/library/binascii.html –

Смежные вопросы