protobuf安装及使用(python)

本文介绍了如何在Python中使用protobuf进行加密操作,实际上就是序列化过程。首先,解决protobuf库导入问题,通过安装protobuf并将其相关目录添加到Python路径。然后,通过实例化protobuf定义的数据类,赋值并调用SerializeToString()方法实现序列化。在反序列化时,使用ParseFromString()方法将二进制数据转换回protobuf格式。文章提供了详细的步骤和示例代码,帮助读者理解和应用protobuf加密与序列化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在一个项目中,被要求用protobuf加密。对方生成了一个编译后的py文件给我。
给我指示:把我生成的变量值赋值到py文件的data类中,再调用其中的serialtostring()方法来实现protobuf加密。
理解下来,其实protobuf加密就是序列化。

我把py文件加载到我的pycharm工程中,其中开头加载依赖中有写:
from google.protobuf import…
但是我在pycharm的setting里面,安装了google后,这个加载依赖的命令还是有红色波浪线。

所以我上网查了以下如何安装protobuf,其中下面这篇博文推荐大家:
https://blog.csdn.net/u013210620/article/details/81317731
其中有个地方好像错了:
3.继续安装protobuf的python模块(如果不用python,可跳过这一步)
cd ./python
这里应该是cd python/
按照上面这篇blog安装后,会在下面的路径中看到google文件夹:
/opt/protobuf3.6.0/python/
接下来,我把这个目录下的整个google文件夹拷贝到我的pycharm工程里,加载依赖包里的红色波浪线就消失了,加载依赖就成功了。

使用:

1.序列化:

protobuf的结构文本序列化成了二进制
data_serial = XXXX_pb2.Data()
data_serial.timeStamp = int(time.time())
pay_pid_serial = data_serial.SerializeToString()
通过实例化,再赋值,再调用其中的一个方法的方式,就可以实现protobuf加密了。

2.反序列化:

二进制转换成protobuf
使用函数ParseFromString()

 data_str = XXXX_pb2.Data()  # 实例化
 data_o = data_str.ParseFromString(data_i)
 # data_i: 需要反序列化的字符串编码
 # data_o: 反序列化后proto格式的数据

关于使用,这个blog写的不错:
https://blog.csdn.net/u013421629/article/details/114266759

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值