ISO 8583 Parser
免费 · 解析器 · 更新于 2026-08-09
在线速查

EMV IAD(tag 9F10)发卡行应用数据解析

IAD 是卡片写给自己发卡行的报告,格式天生就是私有的。这个工具把它逐字节拆开;当结构特征足够明显时,标出卡组织的典型布局:密钥派生索引、密文版本号,以及承载卡片对这笔交易「自己怎么看」的 CVR 块。

示例:

标准报文里的一个私有字段

EMV Book 3 对 tag 9F10 的全部定义就一句话:发卡行应用的私有数据,最长 32 字节。真正的布局来自卡组织的实现规范——Visa 的 VIS、Mastercard 的 M/Chip——再叠加发卡行的个人化选择,用哪个变体由字段里自带的 CVN 标识。所以不存在通用解法;任何工具在字节边界之外告诉你的东西都是推断。这一页把自己的判断规则摆在明面上:首字节 06 按 Visa 格式 0/1/3 读,总长 18、20 或 26 字节按 M/Chip 候选读。

实际会遇到的几种布局

Visa 格式 0/1/3——字节 1 是长度指示 06,然后是 DKI(卡片密钥由哪把发卡行主密钥派生)、CVN,以及 4 字节 CVR(CVR 自己的首字节 03 是长度)。很多卡后面还挂第二段:又一个长度指示加发卡行自主数据。

Mastercard M/Chip——KDI、CVN,然后 6 字节 CVR,其后是 DAC 或 IC 卡动态数、明文计数器,随 M/Chip 版本而不同。银联卡采用与 Visa 类似的结构。如果一个值哪种形状都对不上,这本身就是信息:有的发卡行跑完全自定义的配置,这时逐字节网格就是唯一可靠的读法。

CVR——卡片自己的判词

IAD 里真正值钱的货是 CVR(卡片验证结果):TVR 的卡片侧镜像。TVR 记录终端看到了什么,CVR 记录卡片自己判了什么——上一笔联机交易有没有正常完成、脱机 PIN 的结果和剩余次数、发卡行认证过没过、执行了几条发卡行脚本。当你和发卡行对一笔交易各执一词时,CVR 就是他们那边的证词。

这个工具刻意不做 CVR 的逐位解读。CVR 的位定义取决于 CVN:VIS CVN 10 和 CVN 18 的 CVR 同一个位置含义不同,M/Chip 又是另一套。拿错表解出来的是一本正经的胡话——先看 CVN,再去查对应的卡组织表格或发卡行个人化文档。

排查时怎么用

IAD 最出活的场景是和发卡行掰扯的争议单:终端侧看起来莫名其妙的拒绝,解释往往就藏在这里——联机之前脱机 PIN 已经失败过、上一笔的发卡行认证没过、某个脚本计数器从来没动过。向发卡行提 case 时把 DKI 和 CVN 一并报上去,这两个字节能让对方的密钥团队直接定位到该查哪套密钥、哪个算法变体。

最经典的误读:拿 Visa 的布局去套别家的卡。Visa IAD 的字节 3 是 CVN,M/Chip IAD 的字节 3 是 CVR 的中段。先查 AID 再选表——如果 AID 和 IAD 的形状对不上,两边都先别信,搞清原因再说。