BER 编码

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

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

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部分

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章