Python 3 CBC由于双反斜杠字节而失败

问题描述

我正在尝试回读文件中的密文,例如\t"\x87]\xb6^,\xa7G\xf7\x99<\xb2-\x06\xc8,但是当我将其设置为CBC解密的字节数组时,我得到b'\\t"\\x87]\\xb6^,\\xa7G\\xf7\\x99<\\xb2-\\x06\\xc8'最终失败,因为这不是16字节CBC解密的倍数。我曾尝试使用unicode转义进行解码,但是并不能将其数据类型保留为字节。我似乎无法弄清楚如何使它再次正常解密?

谢谢。

解决方法

对于所有遇到此问题的人:

如果将密文写入包含\的文件,而不是将其读取为字符串并转换为字节(这会添加一个额外的\转义字符),请在open()语句中使用“ b”修饰符。

示例:使用open(“ test.txt”,“ rb”)-注意b?这意味着文件中的所有内容都会自动读取为一个字节。不要写或处理字符串。直接写入和读取字节,然后您的加密/解密功能将开始工作。没有多余的\。