【发布时间】:2021-02-19 10:50:11
【问题描述】:
我尝试在 python 中使用谷歌协议缓冲区解密我的数据
sample.proto 文件:-
syntax = "proto3";
message SimpleMessage {
string deviceID = 1;
string timeStamp = 2;
string data = 3;
}
之后,我使用 proto 命令生成了 python 文件:-
protoc --proto_path=./ --python_out=./ simple.proto
我的 Python 代码如下:-
import json
import simple_pb2
import base64
encryptedData = 'iOjEuMCwic2VxIjoxODEsInRtcyI6IjIwMjEtMDEtMjJUMTQ6MDY6MzJaIiwiZGlkIjoiUlFI'
t2 = bytes(encryptedData, encoding='utf8')
print(encryptedData)
data = base64.b64decode(encryptedData)
test = simple_pb2.SimpleMessage()
v1 = test.ParseFromString(data)
执行上述代码时出现错误:- google.protobuf.message.DecodeError: Wrong wire type in tag Error
我做错了什么。谁能帮忙?
【问题讨论】:
-
你是怎么得到加密数据的?
-
@gwenzek:- 它从协议缓冲区加密。实际数据为json格式
标签: python python-3.x jsondecoder protocol-buffers