der解码规则_DER编码简介
概念:
DER是BER的子集,它為每一個(gè)ASN.1類型定義一種唯一的編碼方案。
DER與BER的區(qū)別:
DER在BER的基礎(chǔ)上增加了如下限制:
長度小于等于127,必須使用短型長度表示法。
長度大于127,必須使用長型長度表示法,并且要盡可能的短。
對于簡單的string類型以及在其基礎(chǔ)上隱性標(biāo)簽生成的類型使用簡單定長表示法。
對于結(jié)構(gòu)化類型以及在其基礎(chǔ)上隱性標(biāo)簽生成的類型以及所有的顯示類型使用結(jié)構(gòu)化定長表示法。
簡單定長表示法和結(jié)構(gòu)化類型表示法的區(qū)別是在TLV的T中bit6是0還是1。
DER的組成:
無論什么類型它的DER編碼都是有四部分組成:
類型字段tag? 長度字段length?? 值字段value?? 結(jié)束表示字段
即T L V
類型字段:
由一個(gè)字節(jié)(即八個(gè)二進(jìn)制位)組成。
bit8 bit7用來表示tag類型,universal是00? application是01? context-specific是10?? private是11
bit6表示結(jié)構(gòu)化位,0代表簡單類型,1代表結(jié)構(gòu)類型
bit5-bit1表示tag值,tag值可以查表獲得。
長度字段(以字節(jié)為計(jì)算單位):
長度字段分為兩種:小于等于127和大于127
小于等于127:用一個(gè)字節(jié)表示。bit8=0,bit7-bit1表示長度值。
例子:38表示為00100110
大于127:由多個(gè)字節(jié)組成
第一個(gè)字節(jié):bit8=1,bit7-bit1表示存放長度所占字節(jié)數(shù)(通俗的講就是后面還有幾個(gè)字節(jié))
其余字節(jié):存放長度值
例如:201表示為10000001 11001001
長度值不定:用0x80表示。
值字段:
不同的類型其值不同,但歸根結(jié)底類型都是二進(jìn)制,或十進(jìn)制,或十六進(jìn)制 ,或者是ASCLL字符,將他們轉(zhuǎn)換為16進(jìn)制表示出來即可。
結(jié)束標(biāo)識(shí)字段(不在TLV之中):
兩個(gè)字節(jié),只有在長度值不定時(shí)才會(huì)出現(xiàn)。表示為0x000x00
總結(jié)
以上是生活随笔為你收集整理的der解码规则_DER编码简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在vue中怎么写行内样式高_说说在 Vu
- 下一篇: win10下载东西黑屏怎么办啊 Win1