解码/编码字符串,例如“AQAAAAAAgFbAAAAAAAAAAAAAAAAAAABAQA = A”到130,-90,0在python中

时间:2018-04-16 03:54:55

标签: python-3.x binary decode

我需要在只接受字符串的应用程序中生成输入 'AQAAAAAAgFbAAAAAAAAAAAAAAAAAAGB4QA =='。

我有几个样本,我知道预期的输出应该是什么样的:

  • “AQAAAAAAgFbAAAAAAAAAAAAAAAAAAAABBAQA ==”应该导致130,-90,0
  • “AQAAAAAAgFbAAAAAAAAAAAAAAAAAAAMBiQA ==”应该导致150,-90,0
  • “AQAAAAAAgFbAAAAAAAAAAAAAAAAAAAGB4QA ==”应该导致390,-90,0

这些编码以某种方式在C ++中生成,但我不知道如何生成它们。

我需要的是一种方法,我可以输入数字(如130,-90,0),并输出字符串“AQAAAAAAgFbAAAAAAAAAAAAAAAAAAABBAQA ==”。

我尝试对字符串进行反向工程,但到目前为止我还没有得到任何有用的东西:

print(base64.b64decode('AQAAAAAAgFbAAAAAAAAAAAAAAAAAAGB4QA=='))

b'\x01\x00\x00\x00\x00\x00\x80V\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00`x@'

我不确定我是否使用b64decode处于正确的轨道上。任何帮助都会很棒!!!

1 个答案:

答案 0 :(得分:0)

上面我的问题的答案是:

data = base64.b64decode('AQAAAAAAgFbAAAAAAAAAAAAAAAAAAGB4QA==')

test = struct.unpack('ddd', data[1:])
ver = struct.unpack('b', data[:1])
print(test)
print(ver)

输出:

(-90.0, 0.0, 390.0)
(1,)

其中1显然是我不知道的版本号。