EMV规范(四)——读应用数据

读应用数据的目的是为了从卡片中获取后续交易需要的数据。例如,在脱机数据认证时,需要的认证数据,等。步骤:根据应用初始化时,由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规范(一)——背景介绍

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值