验证protobuf消息定义

时间:2016-01-28 04:01:27

标签: protocol-buffers

是否有可能获得protobuf消息定义的哈希值?哈希应该在消息定义本身上,而不是取决于其中的任何数据。我正在使用protobuf在机器之间传输数据,我想确保它们是根据消息结构的完全相同的定义编译的。

1 个答案:

答案 0 :(得分:1)

您可以使用google::protobuf::Message::GetDescriptor()界面获取消息描述符。使用Descriptor::CopyTo()方法,您可以将其转换为DescriptorProto,其中包含以protobuf格式存储的protobuf消息的所有信息。然后,您可以以任何方式进行序列化和哈希。

但我同意whrrgarbl的观点,即protobuf已经具有非常好的前向和后向兼容性。因此,除非您有非常特殊的原因,否则这种哈希似乎是不必要的,只会使您日常维护代码变得更加困难。