python使用protobuf

#安装

tar zxvf protobuf-python-3.5.1.tar.gz
cd protobuf-3.5.1
./configure
make
make check
make install

#验证
protoc --version

#安装python protobuf模块
cd python
python setup.py install

#编写kms_sdk.proto文件

#生成kms_sdk_pb2.py

protoc -I=./ --python_out=./ kms_sdk.proto

import kms_sdk_pb2


msgdata = kms_sdk_pb2.CipherMsg()

msgdata.head.algorithm = 1
msgdata.head.encryptionContext = 'hello'

msgdata.head.blockType = 0
msgdata.head.blockLength = 100

#repeated类型处理
dataKey1 = msgdata.head.dataKeys.add()
dataKey1.cmkRegion = 'guangzhou'
dataKey1.cmkKeyId = 'aaaaaaaaa'
dataKey1.dataKey = 'AAAAAAAA'

dataKey2 = msgdata.head.dataKeys.add()
dataKey2.cmkRegion = 'shanghai'
dataKey2.cmkKeyId = 'bbbbbb'
dataKey2.dataKey = 'BBBBBBB'

sendDataStr = msgdata.SerializeToString()
print('SerializeToString:',sendDataStr)


receiveDataStr  = sendDataStr 
receiveData = kms_sdk_pb2.CipherMsg()
receiveData.ParseFromString(receiveDataStr)

print(receiveData.head.encryptionContext)
print(len(receiveData.head.dataKeys))
print(receiveData.head.dataKeys[0].cmkRegion)




猜你喜欢

转载自blog.csdn.net/woailp___2005/article/details/106383207