【发布时间】:2020-10-13 15:16:43
【问题描述】:
我正在尝试读回文件中的密文,例如 \t"\x87]\xb6^,\xa7G\xf7\x99<\xb2-\x06\xc8 但是当我将其设置为用于 CBC 解密的字节数组时,我得到 b'\\t"\\x87]\\xb6^,\\xa7G\\xf7\\x99<\\xb2-\\x06\\xc8' 最终失败,因为这不是 CBC 的 16 字节倍数解密。我曾尝试使用 unicode 转义进行解码,但它不会将其数据类型保留为字节。我似乎无法弄清楚如何让它再次正常解密?
谢谢。
【问题讨论】:
-
当您在字节对象上调用
str()时会发生这种情况(也隐含地,例如在print()调用中)。它不容易恢复,您应该首先防止这种转换发生。 -
我修好了。在文件的 open() 语句中使用“b”修饰符有效,并且绕过每个 bytearray() 调用。
标签: python-3.x unicode byte aes cbc-mode