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

Python 3 CBC fail because of double backslash byte

我正在尝试读回文件中的密文,例如 \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 了吗?这意味着文件中的所有内容都会自动读取为一个字节。不要编写或处理字符串。直接写入和读取字节,然后您的 encrypt/decrypt 函数就可以工作了。没有额外的 \.