来源:中国一卡通网 作者: 发布时间:2006-12-29 12:11:07 字体:[大 中 小]
关键字:IC卡技术 IC卡编程 IC卡数据结构 逻辑加密型卡 AT88SC1604卡
摘 要:IC卡与其它卡片的区别主要是:IC 卡能在卡上存储器中安全可靠地存储大量有用信息,并且可以对数据提供多级安全保密措施.因此,为设计一个好的IC 卡应用系统,必须了解IC卡的数据结构特点.掌握IC卡的编程和读写方法.
IC卡与其它卡片的区别主要是:IC 卡能在卡上存储器中安全可靠地存储大量有用信息,并且可以对数据提供多级安全保密措施.因此,为设计一个好的IC 卡应用系统,必须了解IC卡的数据结构特点.掌握IC卡的编程和读写方法.存储分区 |
位地址 |
位数 |
字节地址 |
字节数 | |
FZ |
厂方代码区 |
0-15 |
16 |
0-1 |
2 |
IZ |
发行商代码 |
16-79 |
64 |
2-9 |
8 |
SC |
总密码 |
80-95 |
16 |
10-11 |
2 |
SCAC |
总密码错误计数器 |
96-103 |
8 |
12 |
1 |
CPZ |
代码保护区 |
104-167 |
64 |
13-20 |
8 |
SC1 |
一区密码 |
168-183 |
16 |
21-22 |
2 |
S1AC |
一区密码错误计数器 |
184-191 |
8 |
23 |
1 |
EZ1 |
一区擦除密码 |
192-207 |
16 |
24-25 |
2 |
E1AC |
一区擦除密码错误计数器 |
208-215 |
8 |
26 |
1 |
AZ1 |
应用区一 |
216-9775 |
9650 |
27-1221 |
1195 |
SC2 |
二区密码 |
9776-9791 |
16 |
1222-1223 |
2 |
EZ2 |
二区擦除密码 |
9792-9807 |
16 |
1224-1225 |
2 |
E2AC |
二区擦除密码错误计数器 |
9808-9815 |
8 |
1226 |
1 |
AZ2 |
应用区二 |
9816-11863 |
2048 |
1227-1482 |
256 |
SC3 |
三区密码 |
11864-11879 |
16 |
1483-1484 |
2 |
EZ3 |
三区擦除密码 |
11880-11895 |
16 |
1485-1486 |
2 |
E3AC |
三区擦除密码错误计数器 |
11896-11903 |
8 |
1487 |
1 |
AZ3 |
应用区三 |
11904-13951 |
2048 |
1488-1743 |
256 |
SC4 |
四区密码 |
13952-13967 |
16 |
1744-1745 |
2 |
EZ4 |
四区擦除密码 |
13968-13983 |
16 |
1746-1747 |
2 |
E4AC |
四区擦除密码错误计数器 |
13984-13991 |
8 |
1748 |
1 |
AZ4 |
应用区四 |
13992-16039 |
2048 |
1749-2004 |
256 |
测试区 |
16040-16055 |
16 |
2005-2006 |
2 | |
合计 |
16056 |
2007 |
二.IC卡编程和使用流程
对IC卡的读写操作主要在发卡时和用户持卡交费及持卡消费时时行. 发卡是卡片发行者根据用户要求对空白卡的个人化过程. 这一过程由发卡单位的微机上运行的发卡程序执行,如银行,工厂,机关等部.这一发卡程序也需IC卡开发人员根据上述经构特点进行开发设计.用户持卡消费则在商店POS机或银行ATM机上进行,持卡交费也需要在银行或交费处进行.这一过程是读出或修改卡上数据的过程,由IC卡用户应用程序在用户终端上完成.此时用户需与终端进行交互式处理.这种用户应用程序也是IC卡开发人员进行设计的.下面,综合上一节讨论的IC卡存储结构特点, 说明在这两种软件中的操作过程.
1.IC卡个人化操作流程
如前所述,此流程嵌在IC卡发卡软件中执行,可完成IC卡的人人化即初始数据录入过程.首先系统核对IC卡的厂商代码和卡型,正确时,在空白卡上写入发行商代码,确定此卡为本系统有效卡.然后软件应提供交互式用户界面, 让用户从键盘输入自己的用户密码(SC).此密码不应由发行者保留和处理,而应该通过调用密码写入函数而直接写入卡上. 多分区中的分区密码也可以通过给用户提供的界面由用户直接输入.为了简化密码记忆要求,也可以采用根据统一用户密码经一定算法来分别产生分区密码并写入卡上. 擦除密码则是在个人化时由发行商也就是系统来产生并且入卡上的,供系统使用.在上述密码写入后, 软件还应提供用户对密码核实和再次修改的机会.在确认无误后,软件发出熔断命令,熔断熔丝2,完成IC卡的个人化进程.随后系统可对IC卡数据区需写入的数据作初始写入.
2.IC卡用户应用软件流程
如前所述,此流程嵌于各IC卡读写终端的用户软件中.每次涉及对IC卡操作时执行此流程.一旦IC卡插入读写器,用户软件首先应核对厂商代码,发行商代码,以确认此卡的合法性.在确定是本系统中的有效卡后,进入用户密码核对流程, 如果是无效卡,应报警.接着在用户密码核对界面中对持卡人的合法性进行鉴别. 要求持卡人键入用户密码,与卡上密码核对,无误后可开始对卡读写. 如有分区密码也要求用户键入核实.如果需对卡上已有数据进行修改,则应与系统中保留的探险密码进行核对. 正确时可先读出卡上数据进行修改运算,再擦除相应存储区,最后将修改后数据写回该存储区.根据以上叙述,我们知道IC卡的合法性, 持卡人合法性和系统的合法性要相互确认.这些确认和对IC卡的读写操作均需调用随IC 卡读写器提供的函数库中的函数来完成.
三.IC卡应用程序编程中使用的函数
如上所述:开发IC卡应用系统的要点就是在一个数据库管理软件中,合理地嵌入和调用IC卡操作函数,来完成诸如合法性验证和IC卡读出,擦除和写入等操作.为此,我们需要了解由读写器驱动程序包中提供的IC止操作函数库.这些函数可分为两大类:在WINDOWS应用环境中,提供了一组动态链接库函数(.DLL文件)供各种程序调用. 在DOS 环境中, 则针对不同语言提供了各自的函数库. 这时限于篇幅仅举FOXPROFOR DOS中使用的部分函数加以说明.详细资料可查看相应手册.
在FOXPRO程序执行前,执行命令:.SET LIBRARY TO MWIC.LIB
则FOXPRO会自动登录-MWIC.LIB-中的IC卡函数,以后可以像使用FOXPRO 内部函数一样在程序使用中使用其中的接口函数.而在编译用户程序为.EXE文件时,又要将-MWIC.LIB-链入即可执行.
MWIC.LIB中的接口函数可分两类:
通用函数:用于各种卡型的基本操作.
1.MW-INITCOM() 初始化串行通迅口.
2.MW-SETTYPE() 设置卡型.
3.MW-READ() 读卡上的数据.
4.MW-WRITE() 向卡上写入数据.
5.MW-ERASE() 擦除指定区域.
AT88SC1604卡专用函数:仅用于这种卡型,因为不同卡型中密码的结构和位置不同.
1.MW-PASS16() 检验总密码和擦除密码
2.MW-CPASS16() 改变总密码和擦除密码
3.MW-RDECU16() 读错误计数值
4.MW-FUSE16() 烧断熔丝
推荐文章
论坛热帖