• CPU卡MF下目录基本文件(DIR)的结构


    符合PBOC标准的CPU卡,要求在MF下拥有一个目录基本文件(DIR),该文件用于指示目录结构。

    选择MF后,卡片的应答如下:

    Tag: 6F 15 84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 03 88 01 01 [90 00] 

    该应答为嵌套的TLV格式的可变长记录,具体解释如下:

    6F:文件控制信息模板的记录标识

    15:文件控制信息模板的记录长度(其后共有数据21字节,十六进制为15)

    84 0E...01 01:记录数据,共计21字节

    上述的21字节记录数据中:

    84:DF名称的记录标识

    0E:DF名称的记录数据长度(14字节)

    31 50...30 31:14字节的记录数据,也就是DF(MF)的名称,是“1PAY.SYS.DDF01”的ASCII码。

    A5:文件控制信息专用模板的记录标识

    03:文件控制信息专用模板的记录数据长度(3字节)

    88 01 01:文件控制信息专用模板的记录数据(3字节)

    上述的3字节记录数据中:

    88:DIR短文件标识符的记录标识

    01:DIR短文件标识符的记录数据长度

    01:DIR的段文件标识符

    由于常见的CPU卡(如FM1208)在出厂时已将MF固化,因此MF下指示目录结构的基本文件(DIR)的短文件标识符必须为01,文件标识符为0001。

    DIR为可变长记录文件,每条记录均应采用TLV格式。

    如果MF下只有一个ADF(应用目录文件),则DIR的记录也只有一条。

    读取DIR的第一条记录:

    Rdr: 00 B2 01 0C 00
    Tag: 61 11 4F 09 AA AA AA AA AA AA AA AA AA 50 04 50 42 4F 43 [90 00]

    (以上数据来源于某城市早期发行的地铁卡)

    读卡器发送APDU的P2为0C(二进制00001100),其中P2的低3位始终为100,高5位不全为0则表示短文件标识符(00001)。

    卡片的应答数据为TLV格式,具体解释如下:

    61:可变长记录标识(Tag)

    11:可变长记录数据长度(17字节,十六进制为11)

    4F...43:记录数据共计17字节

    4F:应用目录文件ADF名称的记录标识

    09:应用目录文件名称的记录数据长度(9字节)

    AA...AA:应用目录文件ADF名称的记录数据(9字节,也就是ADF的名称)

    50:PBOC的记录标识

    04:PBOC的记录数据长度(4字节)

    50 42 4F 43:“PBOC”四个字母的ASCII码

  • 相关阅读:
    LeetCode 0481. 神奇字符串
    实验(四):指令部件实验
    详解TCP为什么不能是两次握手
    uniapp通过功能性编码跳转到原生的app页面
    从大模型到内容生成,初窥门径的AI新次元
    几种软件系统集成方式详细介绍
    密码学入门
    Python:实现随机正态分布快速排序算法(附完整源码)
    Python高校学生档案管理系统毕业设计源码071528
    Linux驱动基础
  • 原文地址:https://blog.csdn.net/robur/article/details/127626461