2012-10-14 54 views
3

我有一些數據通過被描述爲base64編碼的web服務。Base64編碼變化?我有base64編碼的數據沒有正確解碼

例子:AgAOAAAAQQEA3AcKDhIyCNwHCg4SMgyYIzSWoACP1T2TRRw1MTExMDUwMTE2ICAAAAAAAAAAAAAA3AAjU1QsKzAyMjEuMGxiDQo=

然而,試圖解碼,這是不來了,結果我本來期望:

>>> base64.b64decode('AgAOAAAAQQEA3AcKDhIyCNwHCg4SMgyYIzSWoACP1T2TRRw1MTExMDUwMTE2ICAAAAAAAAAAAAAA3AAjU1QsKzAyMjEuMGxiDQo=') 
'\x02\x00\x0e\x00\x00\x00A\x01\x00\xdc\x07\n\x0e\x122\x08\xdc\x07\n\x0e\x122\x0c\x98#4\x96\xa0\x00\x8f\xd5=\x93E\x1c5111050116 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdc\x00#ST,+0221.0lb\r\n' 

它看起來像解碼字符串的結尾是有點兒,八九不離十沿着我正在尋找的路線。理論上它應該可以轉換成類似於MT=2012-10-14 18:50:08, TT=2012-10-14 18:50:12, BT=00:A0:96:34:23:98, SN=5111050116 , BL=6.30V, S/H=4/3, Weight=221.0lb(100.24kg)的東西,但我無法弄清楚這裏的編碼是怎麼回事。

+0

這是一個你想恢復的mysql binlog dump嗎? – xception

+0

不能,從Qualcomm設備上發佈設備讀數 – ashgromnies

+0

更新我的答案,我現在可以告訴你的所有內容,我不知道如何解碼BL或S/H,並且沒有關於這些字段可能代表的信息,我絕對沒有辦法猜測它們是如何編碼的,希望它們不是至關重要的,或者您可以提供更多信息。 – xception

回答

2

我到目前爲止,我可能需要更多的信息,以一切解碼,但這裏有雲:

>>> t = base64.b64decode('AgAOAAAAQQEA3AcKDhIyCNwHCg4SMgyYIzSWoACP1T2TRRw1MTExMDUwMTE2ICAAAAAAAAAAAAAA3AAjU1QsKzAyMjEuMGxiDQo=') 

日期時間字段MT和TT的順序爲:

>>> print int(t[9:11][::-1].encode("hex"), 16), int(t[11].encode("hex"), 16), int(t[12].encode("hex"), 16), int(t[13].encode("hex"), 16), int(t[14].encode("hex"), 16), int(t[15].encode("hex"), 16) 
2012 10 14 18 50 8 

>>> print int(t[16:18][::-1].encode("hex"), 16), int(t[18].encode("hex"), 16), int(t[19].encode("hex"), 16), int(t[20].encode("hex"), 16), int(t[21].encode("hex"), 16), int(t[22].encode("hex"), 16) 
2012 10 14 18 50 12 

BT是,你只需要添加 ':' 每兩個字母:

>>> t[23:29][::-1].encode("hex") 
'00a096342398' 

SN是:

>>> t[35:47] 
'5111050116 ' 

重量爲:

>>> t[63:72] 
'+0221.0lb' 

很抱歉,但我沒有任何想法的那一刻,其餘的存儲方式,因爲我不知道這些範圍可能是任我真的沒有辦法解碼剩下的東西,讓我知道你是否可以透露更多關於這些字段應該存儲的信息。