请问IC卡写内容上去,需要用什么器材同软件?

请问IC卡写内容上去,需要用什么器材同软件?,第1张

IC卡WINDOWS驱动程瞎掘序手册一 、IC卡驱动程序是一32位 Windows应用程序调用的动态链接库,文件名为IC32.DLL。 二、 IC32.DLL提供的函数: 注意:以下函数名的大小写必须严格区分,否则无法调用<1>、通用函数:1.IC_Status()返回读写器状态亏镇2.IC_ErrMsg() 将错误码转换为错误信息3.IC_InitComm() 打开串口4.IC_ExitComm() 关闭串口5.IC_InitType () 设置要读卡的类型6.IC_Read () 读IC卡的内容7.IC_Write () 写内容到IC卡8.IC_Erase () 对IC卡擦除 *** 作(写FF)9.IC_Read_Float() 读IC卡存储的浮点数10.IC_Write_Float() 写浮点数到IC卡<2>、西门子4432/4442卡专用销神粗函数:1.IC_ReadProtection () 读S4432/S4442卡的保护位2.IC_WriteProtection () 写S4432/S4442卡的保护位3.IC_ReadCount_SLE4442 () 读S4442卡的错误计数器4.IC_CheckPass_SLE4442 () 效验S4442卡的密码5.IC_ChangePass_SLE4442 () 改变S4442卡的密码<3>、西门子4418/4428卡专用函数:1.IC_ReadWithProtection () 带保护位读S4418/S4428卡2.IC_WriteWithProtection () 带保护位写S4418/S4428卡3.IC_ReadCount_SLE4428 () 读S4428卡的错误计数器4.IC_CheckPass_SLE4428 () 效验S4428卡的密码5.IC_ChangePass_SLE4428 () 改变S4428卡的密码<4>、ATMEL AT88SC101/102/103卡专用函数: 1. IC_CheckPass_102() 效验ATMEL101/102/103卡的系统密码 2. IC_ChangePass_102() 改变ATMEL101/102/103卡的密码 3. IC_ReadCount_102 () 读ATMEL101/102/103卡的错误计数器 4. IC_Erase_102()对ATMEL101/102/103卡的擦除 *** 作 5. IC_CheckAZPass_102() 效验ATMEL102卡的应用区密码 6. IC_ChangeAZPass_102()改变ATMEL102卡的应用区密码 7. IC_Fuse_102 ()烧断ATMEL102卡的熔丝<5>、西门子4406卡(电话卡)专用函数: 1. IC_RValue () 读S4406卡的值 2. IC_DEValue () 减S4406卡的值<6>、ATMEL AT88SC1604卡专用函数: 1. IC_CheckPass_1604()效验AT88SC1604卡的系统密码 2. IC_ChangePass_1604() 改变AT88SC1604卡的密码 3. IC_ReadCount_1604 () 读AT88SC1604卡的错误计数器 4. IC_Fuse_1604 ()烧断AT88SC1604卡的熔丝<7>、ATMEL AT24C系列卡(非加密卡)专用函数: 1. IC_Write24() 写AT24C卡(用法见IC_Write()函数)三 函数说明 <1>、通用函数:1.__int16 IC_Status(HANDLE ICDev)说明:返回当前状态*调用:HANDLE ICDev ---- InitComm返回的设备描述符返回:<0 错误,见错误码 =0 正确*举例:IC_Status(ICDev)2.__int16 IC_ErrMsg (__int16 ErrNo, unsigned char* ErrMsg)说明:获取错误信息内容调用:__int16 ErrNo ---- IC卡 *** 作函数返回的错误号 unsigned char * ErrMsg ---- 错误信息内容返回:<0 错误。其绝对值为错误号 >=0 ErrMsg的有效长度举例:IC_ErrMsg(0xee,errmsg) 将0XEE表示的错误信息存入errmsg指定的数据缓冲区。3.__int16 InitComm(__int16 Port)说明:打开通讯设备调用:__int16 Port ---- 通讯口号,整数0,1,2,3返回:<0 错误 >=0 通讯设备标识符举例:ICDev=InitComm(0) 打开串口一。4.__int16 ExitComm(HANDLE ICDev)说明:关闭通讯设备调用:HANDLE ICDev ---- InitComm返回的设备描述符返回:<0 错误 >=0 通讯设备正常关闭举例:ExitComm(ICDev) 关闭ICDev指定的串口。 5. __int16 IC_InitType (HANDLE ICDev,__int16 TypeNo)说明:设置卡类型调用:HANDLE ICDev ---- InitComm返回的设备描述符 __int16 TypeNo ---- 卡类型号返回:<0 错误。其绝对值为错误号 >=0 *** 作正确举例:IC_InitType(HANDLE ICDev,0x20) 设置卡类型为ATMEL102型 6. __int16 IC_Read (HANDLE ICDev,__int16 Offset,__int16 len, unsigned char * DataBuffer)说明:读取IC卡数据调用:HANDLE ICDev ---- InitComm返回的设备描述符 __int16 Offset ---- 读数据IC卡起始地址 __int16 Len---- 数据长度 unsigned char * Databuffer ---- 存放数据的缓冲区返回:<0 错误。其绝对值为错误号 >=0 有效数据长度。表示DataBuffer数据的有效字节数。举例:IC_Read(ICDev,16,64,DataBuffer) 读取16至79的数据到DataBuffer,正确返回64。 7__int16 IC_Write (HANDLE ICDev, __int16 Offset,__int16 length, unsigned char* DataBuffer)说明:写数据到IC卡调用:HANDLE ICDev ---- InitComm返回的设备描述符 __int16 Offset ---- 写IC卡起始地址 __int16 length ---- 数据的长度 unsigned char * Databuffer ---- 即将写入IC卡的数据 并存放返回数据返回:<0 错误。其绝对值为错误号 >=0 写入数据长度举例:IC_Write(ICDev,32,14,"IcCard Message") 将IcCard Message写入从32地址开始的数据区。8.__int16 IC_Erase(HANDLE ICDev,__int16 Offset,__int16 len)说明:擦除数据,即写十六进制的FF、十进制的255。调用:HANDLE ICDev ---- InitComm返回的设备描述符 __int16 Offset ---- 擦除的起始地址 __int16 len---- 擦除字节数返回:<0 错误。其绝对值为错误号 >=0 写入数据长度举例:IC_Erase(ICDev,24,32)擦除从绝对偏移址开始的32个字节。9.__int16 IC_Read_Float(HANDLE ICDev,__int16 Offset,float&fdata)说明:读一个浮点数,并返回到fdata中。调用: HANDLE ICDev ---- InitComm返回的设备描述符 __int16 Offset ---- 要读的起始地址 float&fdata----返回浮点数的地址返回:<0 错误。其绝对值为错误号 >=0 读入数据长度(应该为4)举例:IC_Read_Float(ICDev,24,&fdata)读从绝对偏移址24开始的一个浮点数。10.__int16 IC_Write_Float(HANDLE ICDev,__int16 Offset,float fdata)说明: 写一个浮点数到卡中。调用: HANDLE ICDev ---- InitComm返回的设备描述符 __int16 Offset ---- 要写的起始地址 float fdata ----要写的浮点数.返回:<0 错误。其绝对值为错误号 >=0 写入数据长度(应该为4)举例:IC_Write_Float(ICDev,24,&45.67)从绝对偏移址24开始写一个浮点数。<2>、西门子4432/4442卡专用函数: 1. __int16 IC_ReadProtection (HANDLE ICDev,__int16 Offset,__int16 len,unsigned char* ProtBuffer)说明:读取IC卡保护位调用:HANDLE ICDev ---- InitComm返回的设备描述符 __int16 Offset ---- 读保护位IC卡起始地址 __int16 Len---- 数据长度 unsigned char * Databuffer ---- 存放数据的缓冲区数据值为0表示保护位已置1表示未置保护 0xFF表示非保护位返回:<0 错误。其绝对值为错误号 >=0 有效数据长度。表示DataBuffer数据的有效字节数。举例:IC_ReadProtection(ICDev,0,32,ProtBuffer) 读取地址0~31的保护位数据, ProtBuffer每一字节为0表示对应的保护位已置。 2. __int16 IC_WriteProtection (HANDLE ICDev, __int16 Offset, __int16 len,unsigned char *ProtBuffer)说明:写IC卡保护位调用:HANDLE ICDev ---- InitComm返回的设备描述符 __int16 Offset ---- 写IC卡保护位起始地址 __int16 len ---- 保护位数 unsigned char *ProtBuffer ---- 要置保护位的数据内容,其内容必须与卡中现存 的内容相同,否则不能置写保护。. 返回:<0 错误。其绝对值为错误号 >=0 写入保护位字节数举例:ProtBuffer="MWIC"IC_WriteProtection(ICDev,16,4,ProtBuffer)将16,17,18,19位置保护 3.__int16 IC_ReadCount_SLE4442 (HANDLE ICDev)说明:读取西门子4442卡密码计数器值调用:HANDLE ICDev ---- InitComm返回的设备描述符返回:<0 错误。其绝对值为错误号 >=0 密码计数器计数值。此值表示试密码的机会。举例:IC_ReadCount_SLE4442(ICDev) 4. __int16 IC_CheckPass_SLE4442 (HANDLE ICDev, unsigned char* Password)说明:校验密码(用于SLE4442型) 是IC_CheckPass的宏调用:HANDLE ICDev ---- InitComm返回的设备描述符 unsigned char * Password---- 卡密码 3字节返回:<0 错误。其绝对值为错误号 >=0 校验密码正确举例:IC_CheckPass_SLE4442(ICDev,"111") 校验卡密码为111。 5.__int16 IC_ChangePass_SLE4442 (HANDLE ICDev, unsigned char* Password)说明:更改密码(用于SLE4442型)调用:HANDLE ICDev ---- InitComm返回的设备描述符 unsigned char * Password---- 新密码 3字节返回:<0 错误。其绝对值为错误号 >0 更改密码正确举例:IC_ChangePass_SLE4442(ICDev,"222") 将密码改为222。<3>、西门子4418/4428卡专用函数: 1. __int16 IC_ReadWithProtection (HANDLE ICDev,__int16 Offset,__int16 len,unsigned char* ProtBuffer)说明:带保护位读IC卡。调用:HANDLE ICDev ---- InitComm返回的设备描述符 __int16 Offset ---- 读保护位IC卡起始地址 __int16 Len---- 数据长度 unsigned char * ProtBuffer ---- 存放数据的缓冲区 此缓冲区包括两部分内容: 第一部分为卡中的数据,长度为Len所表示的长度;第二部分为相应的保护位内容, "0"表示保护位已置,"1"表示未置保护,第二部分从偏移址Len开始,也是Len个字节。返回:<0 错误。其绝对值为错误号 >=0 有效数据长度。表示ProtBuffer数据的有效字节数。举例:IC_ReadWithProtection(ICDev,0,32,ProtBuffer) 读取地址0~31的数据和其相应的保护位,ProtBuffer的0-31个字节为卡中数据, 从第32位开始ProtBuffer每一字节为"0"表示对应的保护位已置。注意:ProtBuffer所指缓冲区的长度必须为2*Len,否则将导致不可预料的错误。 2. __int16 IC_WriteWithProtection (HANDLE ICDev, __int16 Offset, __int16 len,unsigned char *ProtBuffer)说明:写IC卡的同时置保护位调用:HANDLE ICDev ---- InitComm返回的设备描述符 __int16 Offset ---- 写IC卡保护位起始地址 __int16 len ---- 保护位数 unsigned char *ProtBuffer ---- 要置保护位的数据内容 返回:<0 错误。其绝对值为错误号 >=0 写入保护位字节数举例:ProtBuffer="LKIC"IC_WriteWithProtection(ICDev,16,4,ProtBuffer) 对16,17,18,19位写入"LKIC"并置写保护 3. __int16 IC_ReadCount_SLE4428 (HANDLE ICDev)说明:读取西门子4428卡密码计数器值调用:HANDLE ICDev ---- InitComm返回的设备描述符返回:<0 错误。其绝对值为错误号 >=0 密码计数器计数值。此值表示试密码的机会。举例:IC_ReadCount_SLE4428(ICDev) 4. __int16 IC_CheckPass_SLE4428 (HANDLE ICDev, unsigned char* Password)说明:校验密码(用于SLE4428型) 是IC_CheckPass的宏调用:HANDLE ICDev ---- InitComm返回的设备描述符 unsigned char * Password---- 卡密码 2字节返回:<0 错误。其绝对值为错误号 >=0 校验密码正确举例:IC_CheckPass_SLE4428(ICDev,"11") 校验卡密码为11。 5.__int16 IC_ChangePass_SLE4428 (HANDLE ICDev, unsigned char* Password)说明:更改密码(用于SLE4428型)调用:HANDLE ICDev ---- InitComm返回的设备描述符 unsigned char * Password---- 新密码 2字节返回:<0 错误。其绝对值为错误号 >0 更改密码正确举例:IC_ChangePass_SLE4442(ICDev,"22") 将密码改为22。 <4>、ATMEL AT88SC101/102/103卡专用函数: 1.__int16 IC_CheckPass_102(HANDLE ICDev,unsigned char* Password)说明:校验密码(用于102型)调用:HANDLE ICDev ---- InitComm返回的设备描述符 unsigned char * Password---- 卡密码 2字节返回:<0 错误。其绝对值为错误号 >=0 校验密码正确举例:IC_CheckPass_102(ICDev,"11") 校验卡密码11。 2.__int16 IC_ChangePass_102(HANDLE ICDev,unsigned char* Password)说明:更改密码(用于102型)调用:HANDLE ICDev ---- InitComm返回的设备描述符 unsigned char * Password---- 新密码 2字节返回:<0 错误。其绝对值为错误号 >0 更改密码正确举例:IC_ChangePass_102(ICDev,"22") 将卡密码改为22。 3. __int16 IC_ReadCount_102 (HANDLE ICDev)说明:读取102卡密码计数器值调用:HANDLE ICDev ---- InitComm返回的设备描述符返回:<0 错误。其绝对值为错误号 >=0 密码计数器计数值。此值表示试密码的机会。举例:IC_ReadCount_102(ICDev)4.__int16 IC_Erase_102(HANDLE ICDev,__int16 Offset,__int16 len)说明:擦除数据(102型),用于烧熔丝之前的卡调用:HANDLE ICDev ---- InitComm返回的设备描述符 __int16 Offset ---- 擦除的起始地址(必须是偶数) __int16 len---- 擦除字节数(必须是偶数)返回:<0 错误。其绝对值为错误号 >=0 写入数据长度举例:IC_Erase_102(ICDev,24,32)擦除从绝对偏移址开始的32个字节。5.__int16 IC_CheckAZPass_102(HANDLE ICDev,__int16 Zone, unsigned char* Password)说明:校验应用区密码(102卡),用于烧熔丝后的卡。 如果密码正确,将擦除该区的数据,即全部置为"FF"调用:HANDLE ICDev ---- InitComm返回的设备描述符 __int16 Zone ---- 102卡的应用区号 unsigned char * Password---- 应用区密码 应用区一的擦除密码为六个字节,从偏移址86开始,缺省为16进制FFFFFFFFFFFF; 应用区二的擦除密码为四个字节,从偏移址156开始,缺省为16进制FFFFFFFF。返回:<0 错误。其绝对值为错误号 >=0 *** 作成功,但并不表示密码正确,只有检查是否擦除才能判断。举例:IC_CheckAZPass_102(ICDev,1,"111111") 校验应用区一,密码为"111111"。 6.__int16 IC_ChangeAZPass_102(HANDLE ICDev,__int16 Zone, unsigned char* Password)说明:更改应用区密码(102卡),烧熔丝前密码可改 是IC_ChangePass的宏调用:HANDLE ICDev ---- InitComm返回的设备描述符 __int16 Zone ---- 102卡的应用区号 unsigned char * Password---- 应用区密码 应用区一的擦除密码为六个字节,从偏移址86开始,缺省为16进制FFFFFFFFFFFF; 应用区二的擦除密码为四个字节,从偏移址156开始,缺省为16进制FFFFFFFF。返回:<0 错误。其绝对值为错误号 >=0 *** 作成功举例:IC_ChangeAZPass_102(ICDev,1,"222222") 将应用区一的密码改为"222222"。 7.__int16 IC_Fuse_102 (HANDLE ICDev)说明:烧102卡的熔丝*调用:HANDLE ICDev ---- InitComm返回的设备描述符返回:<0 错误。其绝对值为错误号 =0 正确举例:IC_Fuse_102(ICDev)<5>、西门子4406卡(电话卡)专用函数: 1.__int16 IC_RValue(HANDLE ICDev)说明:读S4406卡的值调用:HANDLE ICDev ---- InitComm返回的设备描述符返回:<0 错误,见错误码 >=0 卡中剩下的值举例:IC_RValue(ICDev) 2. __int16 IC_DEValue(HANDLE ICDev,__int16 num)说明:减S4406卡的值调用:HANDLE ICDev ---- InitComm返回的设备描述符 __int16 num---- 要减的值返回:<0 错误,见错误码 =0 正确举例:IC_DEValue(ICDev,1) 将S4406卡的值减"1". <6>、ATMEL 1604卡专用函数: 1.__int16 IC_CheckPass_1604(HANDLE ICDev,__int16 Area,unsigned char* Password)说明:校验密码(用于1604型)调用:HANDLE ICDev ---- InitComm返回的设备描述符 Area:为要效验的密码类型, 0: 卡的总密码 1: AT88SC1604卡第一区的密码 2: AT88SC1604卡第二区的密码 3: AT88SC1604卡第三区的密码 4: AT88SC1604卡第四区的密码 11: AT88SC1604卡第一区的擦除密码 12: AT88SC1604卡第二区的擦除密码 13: AT88SC1604卡第三区的擦除密码 14: AT88SC1604卡第四区的擦除密码 unsigned char * Password---- 卡密码 2字节返回:<0 错误。其绝对值为错误号 >=0 效验密码正确举例:IC_CheckPass_1604(ICDev,0,"11") 效验卡密码为"11"。 2.__int16 IC_ChangePass_1604(HANDLE ICDev,__int16 Area,unsigned char* Password)说明:改变密码(用于1604型)调用:HANDLE ICDev ---- InitComm返回的设备描述符 Area:为要改变的密码类型, 0: 卡的总密码 1: AT88SC1604卡第一区的密码 2: AT88SC1604卡第二区的密码 3: AT88SC1604卡第三区的密码 4: AT88SC1604卡第四区的密码 11: AT88SC1604卡第一区的擦除密码 12: AT88SC1604卡第二区的擦除密码 13: AT88SC1604卡第三区的擦除密码 14: AT88SC1604卡第四区的擦除密码 unsigned char * Password---- 卡密码 2字节返回:<0 错误。其绝对值为错误号 >=0 改变密码正确举例:IC_CheckPass_1604(ICDev,0,"22") 改变密码为“22”。 3. __int16 IC_ReadCount_1604 (HANDLE ICDev,__int16 area)说明:读取102卡密码计数器值调用:HANDLE ICDev ---- InitComm返回的设备描述符 Area:为要读错误计数的类型, 0: 卡的总密码错误计数 1: AT88SC1604卡第一区的密码错误计数 11: AT88SC1604卡第一区的擦除密码错误计数 12: AT88SC1604卡第二区的擦除密码错误计数 13: AT88SC1604卡第三区的擦除密码错误计数 14: AT88SC1604卡第四区的擦除密码错误计数返回:<0 错误。其绝对值为错误号 >=0 密码计数器计数值。此值表示试密码的机会。举例:IC_ReadCount_1604(ICDev,0) 4.__int16 IC_Fuse_1604 (HANDLE ICDev)说明:烧1604卡的熔丝*调用:HANDLE ICDev ---- InitComm返回的设备描述符返回:<0 错误。其绝对值为错误号 =0 正确举例:IC_Fuse_1604(ICDev)三、错误信息参考0x80(128) IC卡或硬件出错0x82(130) 通讯出错0x83(131) 密码校验错0x84(132) IC卡读出错0x86(134) 没有插卡或卡没有插好0xEE(238) 通讯超时0xE1(225) 接收通讯错误0xE2(226) 发送通讯错误0x01(001) 其它IC卡 *** 作错误0xFF(255) 其它IC卡 *** 作错误四、卡类型代码参考0x02 西门子4406系列0x04 西门子4418/4428系列0x08 西门子4404系列0x10 西门子4432/4442系列0x20 ATMEL AT88SC101/102/103系列0x40 ATMEL AT24C01A/02/04/08/16系列五、几种常用IC卡的初始密码AT88SC102用户密码(SECURITY CODE):F0F0 应用区1擦除密码(EREASE CODE 1):FF FF FF FF FF FF 应用区2擦除密码(EREASE CODE 2):FF FF FF FFAT88SC1604 用户密码(SECURITY CODE):F0F0 第一区的密码 第二区的密码 第三区的密码 第四区的密码 第一区的擦除密码 第二区的擦除密码 第三区的擦除密码 第四区的擦除密码 以上密码全部为:FF FFSLE4442 用户密码(SECURITY CODE):FF FF FFSLE4428 用户密码(SECURITY CODE):FF FFSLE4404 用户密码(SECURITY CODE):55 55擦除密码(EREASE CODE):FFFFFF以上密码均为16进制数。

逻辑加密卡也具有计算功能。

逻辑加密卡RAM相当于CPU卡的内存,用于临时存放程序的变量。EEPROM主要用来存放一些 应用数据,其容量比逻辑加密卡(SLE4428)大。

逻辑加密卡IC卡的读写机构比磁卡的纯宽读写机构简单,可靠,造价便宜,容易推广,维护简单。如果用户的IC卡丢失或被盗,用户可以报告丢失或在卡所在的存做扒亮储点更换该卡IC卡的使用期限以卡背面打印的有效期为准。

移动存储卡及读卡器:

一般应用在数码相机、掌上电脑、MP3、MP4等小型数码产品中作为存储此首介质,所以样子小巧,犹如一张卡片,所以称之为闪存卡。

根据不同的生产厂商和不同的应用,闪存卡有Smart Media(SM卡)、Compact Flash(CF卡),Multi Media Card(MMC卡),Secure Digital(SD卡)、Memory Stick(记忆棒),TF卡等多种类型。

这些闪存卡虽然外观、规格不同,但是技术原理都是相同的。由于闪存卡本身并不能直接被电脑辨认,读卡器就是一个两者的沟通桥梁。读卡器(Card Reader)可使用很多种存储卡,如Compact Flash or Smart Media or Microdrive存储卡等,作为存储卡的信息存取装置。

首先外形:扣35扣.包89教肢纳包18会,你220应该知道手机sim卡,芯片卡就是那样。表面历滑没有金属片。内部还有一个迷你的芯片储存你卡的信息。同时芯片卡也有磁条,防止pos机太旧,没有读取芯片卡功能的时候你就无法刷卡的情况。磁条卡的话就是后面有一个黑条的那种使用差别:芯片卡是插入pos机使用,磁条卡是刷的(这个就是说刷卡的原因。)现在基本都要淘汰磁条卡了,因为磁条卡使用成功率低,容易被复制。你应该常常见到磁条卡刷不出来于是一次次反复刷的样子,但是芯片卡不会,基本上100%可以一次读取。安全问题的话以前yhk在身边钱却没有了的新闻发生了不少,因为磁条卡信息储存在磁条中,很容易被读取复制。而芯片卡储存在芯片里,有加密措施,你能读取的只是少数支付信息。另外,芯片卡也比磁条卡耐久,磁条卡易磨损,而且放在电器旁边有消磁的风险,虽然钱的数据是在银行,但是让册卡坏了换起来也是很麻烦的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12383015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存