是否有可能获得protobuf消息定义的哈希值?哈希应该在消息定义本身上,而不是取决于其中的任何数据。我正在使用protobuf在机器之间传输数据,我想确保它们是根据消息结构的完全相同的定义编译的。
答案 0 :(得分:1)
您可以使用google::protobuf::Message::GetDescriptor()
界面获取消息描述符。使用Descriptor::CopyTo()
方法,您可以将其转换为DescriptorProto
,其中包含以protobuf格式存储的protobuf消息的所有信息。然后,您可以以任何方式进行序列化和哈希。
但我同意whrrgarbl的观点,即protobuf已经具有非常好的前向和后向兼容性。因此,除非您有非常特殊的原因,否则这种哈希似乎是不必要的,只会使您日常维护代码变得更加困难。