城市自行车系统研究初探

作者: 分类: 技术杂谈 发布时间: 2015/5/1 0:17:46 ė1985 浏览数 60条评论

唐岛湾公园安装了青岛市第一批公共自行车系统,市民可以办理借车卡后,单次一小时内免费骑行唐岛湾公园。在唐岛湾公园10公里的沿线,布置了二十多个自行车停放点,办理会员卡后,可以在任何一个停放点取车、存车,自助完成。

上周在公园玩的时候,发现了这套系统,怀着好奇的心情,大中午的跑去办了一张卡,加入了骑行队伍中。中午太热,没怎么骑,回来后,开始对这个卡的工作原理进行了研究。

首先,用了acr软件对自行车卡进行了深度破解。这个卡的16个扇区的15个全部加密,而且加密方式各不相同,破解了近30分钟才算搞定,期间一直感觉就要像失败的样子,不过最后总算是成功了。破解完毕,进行数据分析。

通过逆向运算,得出该卡内存储了卡号、编号,办卡时间,取车时间、存车时间,存车地点编号、最后存车车辆编号等信息,还存留了用户姓名和身份证信息,这些信息足够强大到实现离线借车和还车。那么这个卡究竟是不是离线操作呢?可以这么判断,但是不确定。

后来拿着中午办卡的协议仔细阅读,发现该卡可以挂失,挂失补办10元。也就是说,挂失后,该卡将无法使用,言外之意就是管理中心可以远程禁止该卡。那么,它就不会是离线式。

随后,抱着试试看的心态,做了一张同样数据的卡,下班后到了唐岛湾,两张卡同时借车,成功。这就说明了它不是实时在线。

所以,可以初步判断:每一个停车点,都是一个独立系统,通过光纤或者gprs、3g等方式与中心服务器相连,但是,考虑到园区大、网络信号不稳定,为了不致于因为网络导致无法借还车辆卡壳,采用非实时传输,也就是说,离线可以工作,在线同步数据。从道理上讲应该是这样的。

既然是可以在线,那么我用一张卡备份后,借出来两辆车,按理说,服务器应该是可以监控到这个数据异常的。但是没有禁止,所以说我借车的时候,数据还没有到中心服务器。至于什么时候同步我就不清楚了。

第二天,下班后不是很忙,再次测试一卡双用。骑车大约40分钟后,电话响了,是公共自行车服务中心打来的,问我是否一张卡借了两辆车。我装糊涂说不清楚咋回事。服务中心说,您的卡借了两辆车,编号分别是224和158,至于怎么回事,他们也不清楚,让我还车一次,看看系统反应。

挂了电话,我到最近的点上还了第一辆车,又到下一个点还了第二辆车。

结束测试,开车回家。

估计服务中心还在纳闷着呢,让他们纳闷去吧。

这套系统,因为1小时内免费,所以只要我不超过1小时产生费用,理论上来说,不会对大系统的数据造成冲突。一旦产生了费用,就会在卡上和服务器上同时扣款。这个时候,另外一张卡的数据仍然是未扣款状态,如果他也产生了扣费,同样会在卡和服务器进行同步扣款,这个时候,服务器因为二次扣款,就会导致服务器和两个卡三组数据不一致,产生系统错乱。从程序设计上来说,应该会有一套预警装置,一旦发现数据异常,自动将该卡打入黑名单再说,以免造成更大的损失。

折腾了两天,把服务中心的小姑娘给折腾迷糊了,估计现在还迷糊着呢。不过,骑车沿着海边走过去,又沿着公园小路走回来,一路风景尽收眼底,心情不错!经过测试,基本搞清楚了这套系统的运行方式。完成任务,好奇心顿时小了很多。

不知道下次什么时候还去骑车,估计没那么大热情了。

本文出自 栋力天空,转载时请注明出处及相应链接。

本文永久链接: http://www.dongsky.cn/show_1516.html

0

0条评论

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    *请输入本文永久链接 show_1516.html 的数字部分

Ɣ回顶部