• CPU卡的读写【转】


    本文转载自:http://blog.csdn.net/logaa/article/details/7465226

    一般来说,对存储卡和逻辑加密卡操作,使用接触式IC卡通用读写器;对CPU卡使用CPU卡读写器。所谓“通用读卡器”是指它可以对大多数流行的存储卡和逻辑加密卡操作。而CPU卡由于有ISO/IEC 7816.3/4的规范,其通讯协议、命令格式都是兼容的,被看作是一种卡。当然,也有将“通用读卡器”与CPU读卡器二合一的真正的接触式通用读卡器。

    PC端IC卡应用软件编程,要点是了解卡的数据结构和调用读卡器函数。在这方面,非CPU卡与CPU卡有不小差别。

    首先,非CPU卡,你必须熟悉卡的存储结构,哪里是制造商区,哪里是密码区,哪里是数据控制区,哪里是数据区(应用区)……;而CPU卡,你不必关心数据的地址,却要关注文件系统的结构:主文件(MF,相当于DOS文件系统的根目录)、专用文件(DF,相当于DOS文件系统的目录,可以有多层)、基本文件(EF,相当于DOS文件系统的文件)。

    CPU卡的基本文件类型虽然只有透明(二进制)文件、(定长与不定长)线性记录文件和循环记录文件三类,但由于COS内部控制的需要,派生出一些特定的“变种”——复位应答文件、口令文件、密钥文件、DIR文件、SFI文件……。这些都需要熟悉。

    纯粹的存储卡是可以自由读取的;非CPU逻辑加密卡的访问控制,需要掌握特定的卡的口令控制、认证控制、特定的数据控制标志字节和卡的熔丝(一种卡上这些控制不一定都有)。

    而CPU卡的访问控制,是在建立文件时定义的,读、写、更改分别是否需要认证,用哪个密钥,是否需要口令,是否需要MAC验证等等。需要说明的是,创建文件命令的格式是随COS而不同的。所以,你必须熟读他的COS手册。

    现在说说卡操作。非CPU卡的访问一般是通过调用函数直接完成的,大不了需要熟悉一下调用参数。而CPU卡除了设备命令(测卡、上下电、选卡座等)和卡的复位命令以外,所有卡命令都是通过一个通用的命令函数执行的,所以你需要熟悉COS手册的命令。

    COS的卡操作命令有统一的格式:CLA(命令类别Class)、INS(命令指令Instruction)、P1(参数1)、P2(参数2)、Lc(命令数据域Data长度)、Data和Le(应答数据域长度)。命令域中除了Data,都是1字节十六进制数。数据域则是十六进制数串,可以是二进制数、BCD码或文字的ASCII码等等。这有点像汇编语言。调用命令函数时,把命令串代入对应参数即可。

  • 相关阅读:
    如何解决快应用堆栈溢出问题
    华为携手Work Shift Calendar (Shifter),将工作效率提升至更高水平
    教你如何实现长按图片保存到相册
    【DTM】HUAWEI Ads与DTM网页转化追踪(二)
    map组件如何展示marker的callout气泡
    【DTM】HUAWEI Ads与DTM网页转化追踪(一)
    “碰一碰”版本的蓝牙键盘,来啦!
    ES-密码设置及JAVA应用
    ES--集群搭建及原理
    ES--ELK搭建(ElasticSearch、Logstash、Kibana)
  • 原文地址:https://www.cnblogs.com/zzb-Dream-90Time/p/7210787.html
Copyright © 2020-2023  润新知