java和go中的密码学(4)-ASN.1基本介绍

标签:密码学
发布时间:2018年10月06日 价值:20000.00 / 共识:21

部分内容摘录自网络,时间久远而源处不可知,故侵删!

ASN.1的基本了解

我们平时工作中经常会序列化数据,如将Java类对象进行Json化、XML化、Yaml化。之所以需要序列化,是因为我们在物理存储或网络传输这些数据后还可以根据对应格式将之解析恢复回来!!
ASN.1被发明的意义,也是如此,都是为了解决高级语言中结构化数据在网络传输中的结构关系能送达目的地进行还原

ASN.1,Abstract Syntax Notation One,翻译:抽象语法标记。ASN.1是一种用于描述结构化实体的结构和内容的语言。ASN.1本身只定义了表示信息的抽象句法,但是没有限定其编码的方法。标准的ASN.1编码规则有
基本编码规则(BER,Basic Encoding Rules)
规范编码规则(CER,Canonical Encoding Rules)、
唯一编码规则(DER,Distinguished Encoding Rules)
压缩编码规则(PER,Packed Encoding Rules)

类比理解:
我们可以类比Unicode字符集理解ASN.1: Unicode字符集为每个字符定义了编号,但是没有定义编码规则。当需要将Unicode字符、文章等存储到硬盘或者网络传输时,我们就会常用的编码规则有:UTF-8、UTF-16、UTF-32等。

ASN.1 的编码方法比许多与之相竞争的标记系统更先进,它支持可扩展信息快速可靠的传输 — 在无线宽带中,这是一种优势。1984年,ASN.1 就已经成为了一种国际标准,它的编码规则已经成熟并在可靠性和兼容性方面拥有更丰富的历程。例如,ASN.1编码规则支持对数据的语义进行描述,所以它是比 XML 更为高级的语言。
如:使用ASN.1语法可以这样定义一个类:

  1. Article ::= SEQUENCE {
  2. author OCTET STRING,  
  3. title OCTET STRING,  
  4. content OCTET STRING,  
  5. }

系统学习ASN.1描述语法

系统学习ASN.1语法的传送门在这里。在此不多说。

ASN.1—标准编码规则BER

ASN.1笔记——标准编码规则BER的传送门在这里。了解掌握简单案例即可,在此不多说。

  • 分享 收藏
0 条评论
  • 这篇文章暂无评论,赶紧评论一下吧~