Ошибка типа: требуется объект, подобный байтам, а не ‘str’ при известной текстовой атаке

#python #typeerror

#python #ошибка типа

Вопрос:

  1. Я пишу код на python для печати строки в качестве выходных данных, но я получаю следующие ошибки:

Обратная трассировка (последний вызов): Файл «xopa.py «, строка 413, в файле Main() «xopa.py «, строка 410, в основном XOR (аргументы [0], аргументы[1], параметры) Файл «xopa.py «, строка 364, в XOPA print(‘Ключ (шестнадцатеричный): 0x%s’ % binascii.b2a_hex(результат.ключ)) Ошибка типа: требуется объект, подобный байтам, а не ‘str’

  1. я удалил ord() функцию, потому что считал ее устаревшей
  2. https://raw.githubusercontent.com/DidierStevens/DidierStevensSuite/master/xor-kpa.py

Строка, отображающая ошибку, приведена ниже

 print('Key (hex): 0x%s' % binascii.b2a_hex(result.key))
  

Комментарии:

1. Здравствуйте и добро пожаловать в StacOverflow. Пожалуйста, обновите свой вопрос, включив код, с которым у вас возникли проблемы, и отформатируйте его как таковой в редакторе th, удалите ссылки или изображения такого кода.

2. Откуда вы взяли идею, которая ord устарела? Это прямо противоположно chr .

3. Пожалуйста, укажите ваш код и ваш подход, который мог бы помочь нам ответить.

4. Я привел ссылку выше в пункте 3

5. Python xor-kpa.py p.text nm.text

Ответ №1:

Согласно официальной документации, входные данные для binascii.b2a_hex(result.key) — это объект byte, а не строка.

Вы можете попробовать это вместо : print('Key (hex): 0x%s' % binascii.b2a_hex(b(result.key)))

или

print('Key (hex): 0x%s' % binascii.b2a_hex((result.key).encode()))

Комментарии:

1. Даст ли это мне строку вместо byte? Я также получил ошибку в функции ord () для кода выше… Ссылка на код приведена выше…

2. Вы можете попробовать это и посмотреть сами 🙂 . какой тип ошибки вы получаете, можете ли вы поделиться журналом? Поскольку ord() принимает строку только одной длины. Было бы полезнее, если бы вы поделились своим журналом консоли вместо того, чтобы мы запускали ваш код.