使用ASN 1協議編碼

2021-10-16 12:50:29 字數 670 閱讀 8984

在不同裝置節點進行通訊的時候,通常要定義乙個資料協議,用來定義要傳輸資料的資訊結構。而asn.1就是定義資料協議的一種方法。即寫乙個檔案,字尾名為 .asn

例如:寫乙個檔案,檔案名叫 data.asn

檔案內容為:

people ::= sequence

即定義乙個資料結構people,包含兩個成員,乙個為位元組串 name, 乙個為整數age。

那麼不同節點就可以根據這個檔案,得到要傳輸資料的資訊結構。如果要傳輸這樣的資料,那麼還需要將這樣型別的資料轉化為二進位製流,即編碼。asn.1提供一下幾種編碼方式:

ber、cer、der、xer、oer、per

可使用不同程式語言,根據編碼方式將資料填入位元流中,比如c語言可定義乙個char陣列,儲存位元流。

interer

boolean

real

enumerated

bit string

octet string

null

sequence

sequence-of

setset-of

choice

ber編碼:基礎方案(型別+長度+內容),額外資料過多

cer編碼:安全性高

der編碼:安全性高

oer編碼:安全性高

per編碼:壓縮能力強

ASN 1編碼學習筆記 一

什麼是asn.1 抽象語法記法一 asn.1是itu t的乙個標準集,它用來編碼及表示通用資料型別,這些資料型別有可列印串值,八位位組串值,位串值,整數值以及用可移值方式組合而成 的其他型別序列值 簡單的說,asn.1指定了以何種方式對非平凡的資料型別進行編碼,以便其他任何平台及第三方工具都能夠解釋...

ASN1之DER編碼規則

在說der之前先了解乙個概念,資料的序列化。什麼是資料的序列化呢,將高階語言 轉變成二進位製流的過程就是資料的序列化。資料序列化的目的就是物理儲存和網路傳輸。在高階語言中有許多結構化的結構,比如,樹,圖,結構體等,高階語言裡的 最終在網路中都是以二進位製流的形式進行傳輸的,但是對於結構化的資料除了編...

ASN1標準對OID的編碼

asn1對oid的編碼有一些規定,形如a.b.c.d.e的oid被編碼的時候,完全可以按照der的編碼規則將整個oid的型別設定為object,然後將每乙個點分數字的型別設定為integer,最終編碼為 obj length int lena a int lenb b int lenc c 可是as...