据我目前所知,一般的非接触式IC卡里面包含很多扇区,每个扇区又有很多块,数据存储在块里,扇区由密码保护。通常一个软件使用几个扇区就够了,不需要使用全部扇区。
卡在出厂时原始密钥为FFFFFFFFFFFF,只有经过装载初始化密钥的IC卡才能在软件中使用,初始化卡密钥工作较为繁琐,通常销售服务单位已完成,客户无需做这部分的工作,销售服务单位做的工作就是用加密狗等软件修改密钥,防止他人用于非法行径。
以上为背景,以下是结论:
所以,一般情况下,卡和读卡器是专款专用,一对一的,A卡只能由A读卡器读!
研究的时候我手里有永和豆浆收银系统的读卡器M和卡M;也有当下我们公司正在使用的读卡器N和卡N,两套系统,两套读卡器,不兼容办……
需求,或者说目的是:
读出卡N的卡 !这样贴上卡,屏幕上就能显示该卡订餐详情!打饭时无需再去按键扣费,也省去了员工现场选餐改餐的时间
不能解决刷卡问题,使用订餐系统的意义是微乎其微的!它只起到了汇总统计、减少浪费的作用,没有提升效率!时间宝贵,大家都懂,,,
扯了那么多,现在咱们说下我这只”瞎猫”是怎么发现读卡器M和卡N这只”死耗子”的:
1.整合现有资料,汇总分析信息
1.1研究读卡器N和卡N
一开始,我无从下手,后来想到既然读卡器N可以读N卡,那看看读卡器N的帮助文件,也看看使用读卡器的一卡通系统,还有销售服务单位给的读卡demo以及API文档,但销售单位没给dll文件,dll是最要命的,最重要的文件没给!感觉好坑的说,,现在看来也罢,,,综合几份资料,我获得的信息有:
(1)卡N用了五个扇区,扇区 1到5,密码可能还是FFFFFFFFFFFF
(2)读卡器读卡的运行机理是:引用硬件的dll,程序里写API中提供的函数就能得到卡的信息
1.2研究读卡器M和卡M
读卡器M有一个可视化驱动程序,有dll,也有demo,还有强大的永和豆浆收银系统,驱动程序里面有个功能是读写测试,如下:

然后我赶紧打开订餐系统后台,哈哈,读出来了一串值,先不管这串值是什么,我要过来周围伙伴的卡,又读出来几个其他的值,而且每个人的卡每次放,那一串值不变!!!
噢耶,至此,发现死耗子的过程就结束了!
因为只要每个卡都能读出独一无二的值,那用它区别对待每个人、每份订单是再简单不过的一件事儿了
故事讲到这里,你觉得完了吗,没完,我们想要的是是刷卡,而不是点一下读卡,它显示卡 ,,,
故事讲到这里,其他主角该上场了,还记得我说的是”我们”,不是”我”吧,他们是真正的大牛哎,那代码写的,666啊
学亮写的AJAX实时执行读卡代码,并把订单详情结果显示到前台页面上
世超帮我调试代码,修改查询语句
还有同桌秀娟,给出了很多建设性意见,不过她的建设性意见和捣蛋能力成正比,,,
除了这些大牛们,身边还有好多人都提供了帮助,
还有要说的是,我的研究是站在朋波曾经研究的基础上,
感觉这一路下来,真的是人品爆发,好运爆棚,运气太好了!
总结一下,
1.办事儿讲究天时地利人和,我觉得这次的成功可以归功于它,天时不好说;但楼下就是个大公司,能提供很多帮助,是地利;最重要的人和,我算是体会到了,大家的帮助就不多说了,比如师哥师姐们,牛腩老师,,,
2.站在前人研究的基础上,多方寻求帮助
3.运气,运气,还是运气
好吧,我承认这次标题党了一回,但这样的目的是想让你看下我的博客
小菜成长之路,大牛莫笑
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!