天天看点

BER 编码

BER(BasicEncoding Rules)是ASN.1中最早定义的编码规则,其他编码规则是在BER的基础上添加新的规则构成,比如 DER

BER传输语法的格式一直是TLV 三元组 <Type,Length, Value>, 每一段占一个字节。其中Value部分可以嵌套另一个 TLV,其格式如下:

BER 编码

Tag部分:高两位标识类型

       00--通用型(比如:string、bool、int等)

       01--应用型

       10--上下文型

       11--私有。

第6位(下标为5绿色)代表value部分是嵌套还是单一,为 0--不嵌套,1--嵌套

length 部分:最高位代表长度部分是定长还是不定长,0--定长,低七位表示的值就是value部分占的字节数。1--不定长,低七位表示接下来几个字节组成的值作为真正的长度

value部分:真正的内容域

举个例子:

107                   130                     3                207           48  130  3  203  160  3  ... ... 将其转成二进制

01 1 01011     1 0000010      00000011    1100 1111‬

01-->应用型

1  -- >valu嵌套

1  -->不定长

00000011    1100 1111-->value 总共 975 字节

48  130  3  203  160  3  ... ... -->value部分

继续阅读