验证 protobuf 消息定义



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

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

但我同意 whrrgarbl 的评论,即 protobuf 已经具有非常好的向前和向后兼容性。因此,除非您有非常特殊的原因,否则此哈希似乎没有必要,并且只会使将来的代码维护更加困难。

最新更新