Преобразовать строковое представление байтов в необработанные байты? - PullRequest
0 голосов
/ 06 апреля 2020

Я видел здесь кого-то, кто предложил использовать sys.stdout.buffer.write () для передачи строкового представления байтов и возврата необработанных байтов. Однако у меня возникла проблема с этим, поскольку я пытаюсь сделать это с помощью байтов ASCII, а не Unicode. Я пишу функцию в python, которая передает эти необработанные байты (из зашифрованного wav-файла) программе C, которая ожидает необработанные байты, а не строковое представление. Я использую CB C -MA C и MA C будет неправильным, если я не использую необработанные байты.

Я получаю необработанные байты в следующем коде:

ciphertext = p.communicate(input=cbcmac_input)[0])
[ protected_wav_file.write(x) for x in (iv, ciphertext) ]
protected_wav_file.close()

Проблема в том, что p.communicate возвращает выходные данные из необработанных байтов в строковое представление байтов. Я также попытался сделать следующее, чтобы попытаться обойти проблему с переменным зашифрованным текстом, преобразовывающим вывод в строковое представление байтов:

protected_wav_file.write(iv)
protected_wav_file.write(p.communicate(input=cbcmac_input)[0])
protected_wav_file.close()

Но у меня все еще есть та же проблема. Большое спасибо, ребята!

...