公交卡工作原理是怎么样的

1、公交卡的余额、刷卡记录,都有保存在公交卡内一份,你自己拿带NFC的手机读一下就知道了。2、公交卡刷卡机多数是不联网的,而刷卡数据都是每天才同步一次。3、如果用技术手段篡改了公交卡余额等信息,也会很容易就被发现。每次刷卡机上的数据同步时,都会同步对比余额信息充值记录,如果出现不同会出现异常提醒。
■网友

公交卡工作原理是怎么样的

NFC卡上面有很多个区块,这些区块的数据都是可以全部拷贝到一个新卡上面去的,其中有一个区块叫做密钥,还有两个区块叫做ID和费用。
每次扣费的时候,通过ID去获取这个卡的余额,扣费完后需要写入新的密钥到区块C,完成扣费。
如果你想盗版这个NFC卡,把ID余额和密钥整个卡都拷贝过去,第一次扣费的时候,副卡第一次扣费的时候,正常完成交易,密钥和ID的绑定也更新了。
但是这时候,你再使用主卡去刷卡的时候,因为ID绑定的密钥已经变化,新卡刷卡肯定会出现异常,因为这个时候的密钥已经不是你拷贝那时候的密钥了。


■网友
可以初步了解常用的公交一卡通(IC卡)的工作原理。IC卡内部有一个由电感线圈L和电容C构成的LC振荡电路。公交车上的读卡器向外发射某一特定频率的电磁波。刷卡时,IC卡内的线圈L中产生感应电流,给电容C充电,达到一定电压后,驱动卡内芯片进行数据处理和传输。
■网友
公交卡工作原理首先,为什么公交之间不能联网?嗯,我说的是现代的公交卡,一卡通公司的那种,年代太久远的,比如什么IC卡一出来的时候就建立的系统不在讨论范围内。我的猜测:1. 公交之间应该是连网的,至于连网方式很简单,和刷卡的POS机是一样的,使用各种2G/3G/4G/5G 连网就行2. 所有的信息都储存在公交公司的服务器数据库里面,这样做的原因有很多好处,可以比如安全,比如更新不需要统一每一个前端设备的时间,比如更换前端设备或者卡的时候,数据很容易做迁移...3. 卡里面存的信息就只有一个,那就是卡的ID,姑且称为CID4. 刷卡器的工作流程: 读取CID-\u0026gt; 发送CID以及需要扣除的金额-\u0026gt; 等停接收扣费成功信息 -\u0026gt;报扣费信息如何做到“一小时内转乘打更低折扣”基于上面的系统,很容易实现这一点,而且服务器压力很小。 服务器存储一个表,表中有3项,分别是CID,余额(B),和最后一次乘车时间(LT)。服务器收到一个CID,然后查表(基本上是常数时间,用时极短,准确来说是CID的位数是N,O(N)),然后检测当前时间和LT之差小于1h吗?小于 扣除打折后金额,大于,扣除不打折金额。返回一个MSG给刷卡机,0表示扣了打折金额,1表示扣了没打折金额,2表示余额不足。刷卡机对应处理即可。
■网友
没公交卡,有这种折扣?应该联网的,现在不是有手机软件能看到公交还有几站到站么。
■网友
公交卡的消费信息都是保存在卡里面的,刷卡器可以根据消费信息来判断应该扣多少钱。
■网友
有两个术语
1 脱机消费,对应互联网在线业务
2 清算,对应银行结算中心
【公交卡工作原理是怎么样的】 一般来说,这些技术是有多个公司来做支持,从硬件到软件。

■网友
不知道有这种功能,刷卡器应该不联网,公交卡里有存储空间,存储卡id,金额等信息,我以为计时标志是由刷卡器来实现的。如果换乘时间标志还不丢的话,应该把时间标志写到卡里了。
■网友
个人认为公交卡的大部分数据都是储存在数据库中的,而公交卡应该是一张具接触式和非接触式功能的IC卡。我们平常公交卡都是通过非接触式进行公交刷卡的。这样就很容易理解了,刷卡器就相当于一个小型智能计算机(前端),他需要处理一些中介信息,他需要为数据库和IC卡提供连接方式。我猜测,为了安全起见,IC卡内应该不会存放数据库密码这种需要极高保密性的东西,余额这种东西应该也不会存放在IC卡中,因为被篡改的可能性还是比较高的。IC卡中可能存放的内容:ID卡号、最后乘车时间刷卡器中可能存有的信息:服务器地址、数据库密码、一些基础的ID卡号识别算法技术原理:当IC卡靠近刷卡机(读写器),刷卡机读取ID卡号,然后通过识别算法得到相应的数据库连接方法(因为现在有很多卡是城市互联的,支持一卡多城使用,所以可能需要有不同的数据库连接方法),然后通过数据库反馈余额信息,如果余额不足就返回某个值,提醒“余额不足”,如果余额足够,就在表中或者IC卡中记录登车信息。(因为这个过程中可能各地有无数个人同时登录服务器,所以会对服务器造成巨大的压力,而这个过程对反应速度的要求也是极高的,所以我认为余额信息也有可能是被记录在卡上的,只是每次乘车后需要同步余额数据)等到你到站下车需要重新刷卡的时候,刷卡器读取之前的等车信息,然后通过简单的计算算出需要扣费的金额,修改数据库中的余额,同时可能同步IC卡中的余额信息。这其中有很多种逻辑设计方法,可能实际使用的是其他方法。=================分割线=============当你上公交车第一次刷卡的时候,如果你刷一次就代表一个人,而如果你上两个人就需要刷两次。这就说明了数据库会记录你上车这一条信息,这样设计可以防止你多刷或者少刷。那么数据库会在这一个过程中会记录说明呢?可能会记录:卡号(必要)、上课时间(必要)、下车站点、下车时间、扣费金额、记录状态然后再说一下,你们有没有发现自己刷公交卡的时候总是要等上两三秒才有反馈,而那些收费员刷站牌的时候几乎秒刷(有些长途站点收费不一,所以会设有收费员,同时支持现金)个人猜测,为了方便收费员刷新站点,可能这些登记信息是保存在另一个服务器的数据库上的,就是一条专线一样的存在,所以这个服务器压力不大,收费员刷卡就会反应快很多。为了加快服务器反馈速度,他们可能只是对数据库的某条数据进行修改,而不是再添加一条。(如,A车刷前在1号站,刷的时候数据库匹配对于的车ID,然后修改站点)所以你下车的时候再次刷卡的时候,他会找到你上车时的登记信息,进行相关算法然后扣费、记录。那么问题来了,如果下车的时候不刷卡会不会不扣费?之前我也有这种想法,但是想想公交车公司也不会那么傻吧,这得亏多少啊,忘记刷卡和故意下课不刷卡的人不可能不存在。所以我目测可能是这样的,当车回到总站,收费员刷最后一站的时候,他会发出指令,匹配所有之前登记的上车记录,逐一对各个用户进行算法收费,这也就保障了不会有逃票的行为。而如果你在第一站就上车刷卡,而下课的时候没有刷卡,公交车一个来回后就会记录你一个来回的车费,就是说你可能会多付一趟车钱,建议各位小伙伴们下车不要忘记刷卡。


推荐阅读