我正在尝试序列化一个字节对象-这是程序加密的初始化向量。但是,Google协议缓冲区仅接受字符串。错误似乎始于将字节转换为字符串。我是否使用正确的方法来执行此操作?感谢您的帮助或指导!
或者,我也可以将初始化矢量设为用于AES-CBC模式加密的字符串对象吗?
代码
string_iv = str(bytes_iv, 'utf-8')
serialized_iv = IV.SerializeToString()
IV.ParseFromString( serialized_iv )
bytes_iv = bytes(IV.string_iv, encoding= 'utf-8')
错误
string_iv = str(bytes_iv,'utf-8')UnicodeDecodeError:“ utf-8”编解码器无法解码位置3的字节0x9b:无效的起始字节
如果您必须将任意bytes
对象强制转换为str
,则可以选择以下选项:
str()
。它将变成repr
形式,即。可以解析为bytes
文字的内容,例如。 "b'abc\x00\xffabc'"
base64
模块)