代码之家  ›  专栏  ›  技术社区  ›  jan_nessner

在python中对字符串进行解码/编码,例如“aqaaaaaagfbaaaaaaaaaaaaaaaaaaaebgqa==”到130,-90,0

  •  0
  • jan_nessner  · 技术社区  · 7 年前

    我需要在一个只接受字符串的应用程序中生成一个输入,如 'AQAAAAAAGFBAAAAAAAAAAAAAAAAAAAGB4QA=='。

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

    • “AQAAAAAAGFBAAAAAAAAAAAAAAAAAAAEBGQA==”应导致130,-90,0
    • “AQAAAAAAGFBAAAAAAAAAAAAAAAAAAAMBIQA==”应导致150,-90,0
    • “AQAAAAAAGFBAAAAAAAAAAAAAAAAAAAGB4QA==”应导致390,-90,0

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

    我需要的是一个可以输入数字(如130、-90、0)的方法,它会输出字符串“aqaaaagfbaaaaaaaaaaaaaaaaaaaaaebgqa==”。

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

    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@'
    

    我不确定B64解码是否正确。任何帮助都会很棒!!!

    1月

    1 回复  |  直到 7 年前
        1
  •  0
  •   jan_nessner    7 年前

    我上述问题的答案是:

    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显然是我不知道的版本号。