【发布时间】:2019-10-07 16:58:26
【问题描述】:
我正在尝试序列化一个字节对象 - 这是我的程序加密的初始化向量。但是,Google 协议缓冲区只接受字符串。似乎错误从将字节转换为字符串开始。我是否使用正确的方法来做到这一点?感谢您的任何帮助或指导!
或者,我可以将初始化向量作为 AES-CBC 模式加密的字符串对象吗?
代码
- 将字节转换为字符串
string_iv = str(bytes_iv, 'utf-8')
- 使用 SerializeToString() 对字符串进行序列化:
serialized_iv = IV.SerializeToString()
- 使用 ParseToString() 恢复字符串:
IV.ParseFromString( serialized_iv )
- 最后,UTF-8 将字符串编码回字节:
bytes_iv = bytes(IV.string_iv, encoding= 'utf-8')
错误
string_iv = str(bytes_iv, 'utf-8') UnicodeDecodeError:“utf-8”编解码器无法解码位置 3 中的字节 0x9b:无效起始字节
【问题讨论】:
标签: python-3.x utf-8 type-conversion encryption-symmetric protocol-buffers