EMV TLV 总结

什么是TLV?

TLV结构是一种传输结构,一个buf,通过T(tag)索引,通过L(len)指定后续长度,通过V(value)保存指定长度

--------------------------------------------------------------------------------------

一个buf怎么解析成TLV?

现在有这么一个二进制字节流

6F328407A0000000031010A5278701019F38129F1A029F33039F40059F1B049F09029F35015F2D086573656E667264659F110101

如第一行所示,它就是一个由上面buf解析出来的TLV结构


tag 部分是 0x6F

len 部分是 0x32

value 部分是 二进制字节流 8407A0000000031010A527870101009F38129F1A029F33039F40059F1B049F09029F35015F2D086573656E667264659F110101


---------------------------------------------------------------------------------------

TLV一层层完全解析出来是什么样的?

对于TLV来讲,有两种格式,一种是基本格式(BER-TLV),一种是嵌套格式

对于本例的buf来讲,它就是一个复合的嵌套格式,完整解析出来应该是这个样子

整个buf是一个父节点,6F

他有两个子节点84 、A5

对于84节点,他是不可再分的基础格式

对于A5节点,他是一个父节点

可以再拆分为4个子节点87、 9F38、 5F2D、 9F11

----------------------------------------------------------------------------------------


为什么87 节点和 9F38节点中间有个白色的地方呢?

根据EMV文档规定,可能出于填充或者其他原因,tlv和tlv之间可能存在无意义的00字节,

在解析的时候应该无视它


----------------------------------------------------------------------------------------

那么为什么有的元素是基础元素,有的元素是嵌套结构呢?

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值