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