ISO7816智能卡APDU命令详解
需积分: 46 78 浏览量
更新于2024-07-29
收藏 399KB DOC 举报
"APDU命令是智能卡与读卡器之间通信的一种协议,遵循ISO7816标准。本文档整理了ISO智能卡通用APDU命令集,详细介绍了10个基本的APDU命令,包括读取、写入、更新和擦除二进制数据,读取和写入记录,追加记录以及获取和存储数据对象等功能。"
APDU(Application Protocol Data Unit)是ISO7816标准定义的一种通信协议,用于智能卡(如SIM卡、CPU卡等)与外部设备(如读卡器)之间的数据交换。每个APDU命令由五部分组成:CLA(Class)、INS(Instruction)、P1和P2参数以及可能的数据区和响应数据。
1. **READBINARY** 命令(CLA: 00/04, INS: B0)用于读取带有透明结构的EF(文件)内容的一部分。它允许读取指定位置的二进制数据,通常用于获取卡片中的固定数据块。
2. **WRITEBINARY** 命令(CLA: 无指定,INS: D0)用于将二进制值写入EF。此命令可以更新卡片上的数据,但需要确保卡片支持写操作且具备相应的权限。
3. **UPDATEBINARY** 命令(CLA: 00/04, INS: D6)用于启动使用APDU命令中给出的位来更新EF中的已有位。这个命令允许对EF中的特定位进行修改,而不是替换整个数据块。
4. **ERASEBINARY** 命令(CLA: 无指定,INS: 0E)允许从指定偏移开始,将EF的一部分内容置为其逻辑擦除状态。这通常意味着将数据设置为特定的默认值或全零。
5. **READRECORD** 命令(CLA: 00/04, INS: B2)用于获取EF的指定记录内容或记录的一部分。记录可以理解为文件中的数据块,可以按序号读取。
6. **WRITERECORD** 命令(CLA: 无指定,INS: D2)有多种操作模式:直接写记录、逻辑“或”更新记录、逻辑“和”更新记录。它可以用来创建、修改或与现有记录数据进行逻辑运算。
7. **APPENDRECORD** 命令(CLA: 00/04, INS: E2)用于在线性结构的EF末尾添加记录,或者在循环结构的EF中写入记录号1。这意味着可以向文件中追加新的数据。
8. **UPDATERECORD** 命令(CLA: 00/04, INS: DC)与UPDATEBINARY类似,但作用于特定记录,使用APDU命令中给出的位来更新指定记录的内容。
9. **GETDATA** 命令(CLA: CA)用于在当前上下文中检索原始数据对象或结构化数据对象中的一个或多个数据对象。这通常用于获取卡片中的特定信息,如持卡人姓名、余额等。
10. **PUTDATA** 命令(CLA: DA)则用于在当前上下文中存储原始数据对象或包含在结构化数据对象中的数据。这个命令用于更新卡片上的信息。
这些APDU命令构成了智能卡交互的基础,通过它们,读卡器能够控制和访问卡片上的数据,执行各种操作,从而实现身份验证、交易处理等功能。理解和熟练运用这些命令对于开发智能卡应用和进行卡片测试至关重要。
2022-09-23 上传
102 浏览量
2022-09-15 上传
206 浏览量
2021-05-12 上传
2023-05-05 上传
2021-02-28 上传
点击了解资源详情
前方有只程序猿
- 粉丝: 31
- 资源: 74
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录