der是ber的子集,它為每乙個asn.1型別定義一種唯一的編碼方案。
der在ber的基礎上增加了如下限制:
長度小於等於127,必須使用短型長度表示法。
長度大於127,必須使用長型長度表示法,並且要盡可能的短。
對於簡單的string型別以及在其基礎上隱性標籤生成的型別使用簡單定長表示法。
對於結構化型別以及在其基礎上隱性標籤生成的型別以及所有的顯示型別使用結構化定長表示法。
簡單定長表示法和結構化型別表示法的區別是在tlv的t中bit6是0還是1。
無論什麼型別它的der編碼都是有四部分組成:
型別欄位tag
長度欄位length
值欄位value
結束表示字段
型別字段
長度字段
值欄位結束表示字段
taglength
value
end
即t l v
型別字段:長度字段(以位元組為計算單位):
長度字段分為兩種:小於等於127和大於127
小於等於127:用乙個位元組表示。bit8=0,bit7-bit1表示長度值。
例子:38表示為00100110
大於127:由多個位元組組成
第乙個位元組:bit8=1,bit7-bit1表示存放長度所佔位元組數(通俗的講就是後面還有幾個位元組)
其餘位元組:存放長度值
例如:201表示為10000001 11001001
長度值不定:用0x80表示。
值欄位:
不同的型別其值不同,但歸根結底型別都是二進位制,或十進位制,或十六進製制 ,或者是ascll字元,將他們轉換為16進製制表示出來即可。
結束標識字段(不在tlv之中):
兩個位元組,只有在長度值不定時才會出現。表示為0x000x00
完!
參考der編碼規則詳解
der解碼規則 DER 編碼規範理解
這幾天在研究 x.509 證書和 der 編碼的解碼資訊。1.基本概念 在 tls ssl 協議中,服務端需要向客戶端提供乙個證書,以證明自己的身份。這個證書裡面包含了服務端的加密公鑰 一些用於描述自己身份的資訊,以及乙個簽名。x.509 是現代公鑰證書的格式規範,目前常用。如果看到這裡不理解什麼是...
ASN1之DER編碼規則
在說der之前先了解乙個概念,資料的序列化。什麼是資料的序列化呢,將高階語言 轉變成二進位製流的過程就是資料的序列化。資料序列化的目的就是物理儲存和網路傳輸。在高階語言中有許多結構化的結構,比如,樹,圖,結構體等,高階語言裡的 最終在網路中都是以二進位製流的形式進行傳輸的,但是對於結構化的資料除了編...
ANS1編碼詳解(二) 編碼規則
基本編碼規則 basicencodingrules asn.1的基本編碼規則定義了一種或多種把任意asn.1 值表示成位元組字串的方法,縮寫為ber。當然還有其它的方法,但是ber是osi中轉換這些值的標準 使用ber,乙個asn.1的值有三種編碼方法,選擇哪種取決於值的型別和值的長度是否已知。這三...