读应用数据的目的是为了从卡片中获取后续交易需要的数据。例如,在脱机数据认证时,需要的认证数据,等。步骤:根据应用初始化时,由GPO命令返回的卡片数据中的AFL,来读取卡片数据。

一. AFL:Application File Locator

二. 所用到的命令为 Read Record

终端发送的命令格式为:  Record number:记录号

卡片回复的数据格式为:

三. 例子

T:表示终端发送的命令
C:表示卡片返回的数据
红色为tag,黑色为长度,紫色为value

假设由上一步从卡片中得到的数据的AFL为: 08 01 01 00 10 01 02 01

1.首先分析AFL:

由上面的数据可以知道有两个AFL entry,分别是 08 01 01 00 和 10 01 02 01

第一条: 08 01 01 00

第一个字节08:可以知道SFI 为01; 第二个字节为01,表示开始读记录号为01; 第三个字节表示最后读的记录号为01,所以SFI 为01时,只读一条记录,记录号为 01; 第四个字节为 00:表示SFI为01时,没有需要参与到脱机数据认证的数据。

第二条: 10 01 02 01

第一个字节10:SFI为02; 第二个字节为01,第三个字节为02,可知SFI为02时,需要读两条记录 01 和02; 第四个字节为01:表示参与到脱机数据认证的有1条记录,就是SFI为02,记录号为01。

2. 根据AFL发送读记录命令

发送第1条命令:SFI为01,记录号为01

T : 00 B2 01 0C 00

C : 70 25 9F 61 01 20 9F 62 01 00 5F 20 1A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 90 00

分析卡片返回数据:

70 25 9F 61 01 20 9F 62 01 00 5F 20 1A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 90 00

90 00:表示卡片返回数据成功。

第2条命令:SFI为02,记录号为01

终端发送的第二条读记录命令为:00 B2 01 14 00

第3条命令:SFI为02,记录号为02

终端发送的第二条读记录命令为:00 B2 02 14 00

备注:关于这个例子中的tag代表什么意思,可以参考emv book3中的Annex A部分。emv规范的下载,见我前面的笔记:EMV规范(一)——背景介绍

EMV规范(四)——读应用数据相关推荐

  1. EMV规范学习与研究(四)——读应用数据

    读应用数据的目的是为了从卡片中获取后续交易需要的数据,用以完成交易中的各种功能. 终端使用读记录命令(READ RECORD)读出在应用文件定位器(AFL)中标记的文件与记录,并在读记录命令中使用SF ...

  2. EMV技术学习和研究(三)应用初始化读应用数据

    转载请注明出处 作者:小旭 借贷记和Qpboc在应用初始化和读应用数据方面的流程还是比较相似. 先看借贷记和电子现金的处理流程 应用选择完成后,终端获取到了PDOL数据(特别说明:这个不是必须的,卡片 ...

  3. 共享锁、排他锁、互斥锁、悲观锁、乐观锁、行锁、表锁、页面锁、不可重复读、丢失修改、读脏数据...

    作者:T-Birds blog.csdn.net/weixin_36634753/article/details/90815755 共享锁(S锁): 又称为读锁,可以查看但无法修改和删除的一种数据锁. ...

  4. EMV规范(一)——背景介绍

    一.EMV组织介绍 EMV标准是由国际三大银行卡组织--Europay(欧陆卡,已被万事达收购).MasterCard(万事达卡)和Visa(维萨)共同发起制定的银行卡从磁条卡向智能IC卡转移的技术标 ...

  5. EMV规范(七)——持卡人验证(CVM)一

    此部分笔记是来源EMV Book3中的10.5 Cardholder Verification节,可以结合此篇笔记来阅读. 终于到CVM这章了,持卡人验证是非常非常重要的章节,反正我的leader是这 ...

  6. EMV规范(三)——应用初始化

    一.应用初始化的目的: ①通知卡片新交易开始 ②将交易所需的数据发送给卡片 ③从卡片上返回AIP和AFL ④决定交易是否被允许执行 二.应用初始化步骤: ①设置TVR和TSI中所有位为0 ②根据应用选 ...

  7. 史上最全的长读长数据校错方法大比拼

    A comparative evaluation of hybrid error correction methods for error-prone long reads               ...

  8. HBase性能优化方法总结(四):数据计算

    本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. 下面是本文总结的第四部分内容:数据计算相关的优化方法 ...

  9. 实践数据湖iceberg 第三十四课 基于数据湖icerberg的流批一体架构-流架构测试

    系列文章目录 实践数据湖iceberg 第一课 入门 实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式 实践数据湖iceberg 第三课 在sqlclient中,以sql ...

最新文章

  1. 交互式多模型_DeepFaceLab824版 Avatar换头模型尝鲜!
  2. ubuntu安装chrome浏览器
  3. pywebio 之词云图
  4. 软件详细设计说明书_校导周绪龙|软件测试第五篇——软件测试的底层思维
  5. office2013打不开文件
  6. dojo 九 effects dojo/_base/fx 和 dojo/fx
  7. python基础课程7(看代码看注释)--matplotlib作图
  8. 项目助理这个工作怎么样_影楼化妆师这个工作怎么样?
  9. JavaScript 基础(三) - Date对象,RegExp对象,Math对象,Window 对象,History 对象,Location 对象,DOM 节点...
  10. redis的配置文件解释
  11. 在密码输入框内按回车就登陆的功能
  12. Windows 资源保护找到了损坏文件,但其中有一些文件无法修复
  13. SQL注入实战 绕WTS-WAF
  14. 第5章-LC3, latency and QoS
  15. 表格提示html内容消失,如何解决Word里面的表格插入题注后页面上内容消失、无法编辑的问题...
  16. Lombok的@Data注解自动重写equals
  17. Holder不等式的证明
  18. NFC学习笔记(2)——NFC基础知识
  19. 赛宁网安“网络安全卓越中心”:立足科技创新 推动网安产业高质量发展
  20. c# listview控件上移下移功能函数

热门文章

  1. n (n - 1)的用途
  2. AutoIt软件说明
  3. [动态规划] 什么是动态规划
  4. R--ggplot包的学习(3)
  5. Servlet规范之转发请求
  6. 2022年网络工程师考试知识点:防火墙技术
  7. Unity3D教程:2D游戏技能特效
  8. ConnectionString
  9. Android 新增API Autofill
  10. 硅谷最牛程序员,总是不经意间碾压众人