赞
踩
什么是TLV?
TLV结构是一种传输结构,一个buf,通过T(tag)索引,通过L(len)指定后续长度,通过V(value)保存指定长度
--------------------------------------------------------------------------------------
一个buf怎么解析成TLV?
现在有这么一个二进制字节流
如第一行所示,它就是一个由上面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字节,
在解析的时候应该无视它
----------------------------------------------------------------------------------------
那么为什么有的元素是基础元素,有的元素是嵌套结构呢?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。