我尝试对当地公共交通公司(慕尼黑的MVG)的GWT-API进行逆向工程。他们不提供公共REST-API或类似的东西。不幸的是,他们使用某种加密的时间戳,其中包含7个字母。字母表是A-Za-z0-9 $ _(按此顺序),它有64个不同的字母。一个人需要6位代表这64个不同的字母。 所以7个字母* 6位/字母使42位。 我很确定这不是一点点。 您可以在http://www.mvg-live.de/MvgLive/MvgLive.jsp#haltestelle=Am%20M%C3%BCnchner%20Tor&gehweg=0&zeilen=7&ubahn=true&bus=true&tram=true上自行查看。请注意(POST)对clockservice(http://www.mvg-live.de/MvgLive/mvglive/rpc/clockService的请求,不使用POST时不工作),这会给你当前的服务器时间。
以下是一些示例,其中包含http响应的日期:
UeEcvQB: Tue, 29 Jul 2014 23:27:15 GMT
UeGbS0O: Wed, 30 Jul 2014 08:40:13 GMT
UeGbhiJ: Wed, 30 Jul 2014 08:41:13 GMT
UeGozGI: Wed, 30 Jul 2014 09:39:13 GMT
UeGpBv$: Wed, 30 Jul 2014 09:40:13 GMT
感谢任何帮助。感谢。
答案 0 :(得分:1)
看起来是使用该字母表将Unix纪元(01/01/1970 00:00:00)转换为base-64之后的毫秒数。
例如:UeGozGI
可以使用以下方式转换回十进制:
U = 20
e = 30
G = 6
o = 40
z = 51
G = 6
I = 8
To decimal:
= (((((20 * 64 + 30) * 64 + 6) * 64 + 40) * 64 + 51) * 64 + 6) * 64 + 8
= 1406713147784
= 07/30/2014 09:39:07am
您指示编码的时间(非常接近)。