Base64编码变体?我有base64编码数据不能正确解码

时间:2012-10-14 20:35:51

标签: 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)的东西,但我无法弄清楚这里的编码是怎么回事。

1 个答案:

答案 0 :(得分: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'

很抱歉,我现在不知道其余的存储方式,因为我不知道这些可能是什么范围,我真的无法解码剩下的,请告诉我是否您可以透露更多有关这些字段应存储的信息。