2016-09-27 1 views
0

Я работаю над расшифровкой нескольких файлов на python с использованием заданного ключа AES с помощью реализации PySrypto AES. В настоящее время я устанавливаю его в статический список шестнадцатеричных байтов (так как это было дано мне). Однако, когда я пытаюсь расшифровать файлы, я получаю предупреждение о том, что размер ключа должен быть 16, 24 или 32 байта. Мой код для преобразования списка в строку следующим образом:Форматирование статического ключа AES для дешифрования в Python

''.join(str(x) for x in key) 

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

[0x2a, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c] 

в полезную строку для расшифровки?

+0

Вы пробовали '«».join (CHR (х) при х в ключе) 'если вы используете Python 2? –

ответ

0

Вы не упомянули, что AES реализация вы используете, но правильный ответ, вероятно, выглядеть

k = bytes([0x01, 0x23, 0x34, 0x56]) 
+0

О, хорошая точка. Я использую реализацию PyCrypto. Он берет в байтах. Я обновлю исходный вопрос, чтобы включить это. –

+0

Я пробовал это, и он, похоже, не работает. Я все еще получаю ошибку размера ключа и не могу расшифровать файлы. –