解码 BER TLV

问题描述

我在解码此 TLV 时遇到问题

模板标签 (7001) 2 字节

长度标签 (0020) 2 字节

值是另一个 TLV

标签(e101)长度(000f)值(373834313938353338353236313430)

标签(e102)长度(0009)值(0009303931383631393038)

70010020e101000f3738343139383533338353236313430e1020009303931383631393038

当我尝试任何 TLV 解码器时,它仅将模板标记读取为 1 个字节,然后将错过其余部分。你能就如何解析它提出建议吗?顺便说一下,我以 Base64String 的形式接收数据,然后转换为 HEX

解决方法

BER 解码器解释此 TLV 流如下:

byte 1,byte 2,byte 3,byte 4 
T=01110000,L=00000001,V=00000000,<end> 
                          ^ inner TLV,starts with T=0 and no place for LV
              ^ length of the V is 1 byte (!!! this why it ends prematurely !!!)
     ^ 10000=SEQUENCE or SEQUENCE OF tag 16
    ^ 1=constructed tag
  ^ 01=APPLICATION tag

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...