**

ASN.1

我是如何接触到ASN.1的?
是在查看ECC椭圆曲线签名算法ECDSA的go源代码的时候,发现其是使用ASN.1编码格式的。
**
ASN.1抽象语法标记(Abstract Syntax Notation One) ASN.1是一种 ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序。
ASN.1 的描述可以容易地被映射成 C 或 C++ 或 Java 的数据结构,并可以被应用程序代码使用,并得到运行时程序库的支持,进而能够对编码和解码 XML 或 TLV 格式的,或一种非常紧凑的压缩编码格式的描述。
例子:

Report ::= SEQUENCE {author OCTET STRING,title OCTET STRING,body OCTET STRING,biblio Bibliography}

就如同我们使用编程语言所定义的结构体一样

而作为抽象语法标记,其核心是能够便于将数据结构转换成位流或者说字节流以便于进行传输

BER

BER是ASN.1最早定义的编码规则。BER传输语法的格式⼀直是TLV三元组<Type,Length,Value>,也叫做<Tag,Length,Value>。TLV每个域都是⼀系列⼋位组,对于组合结构,其中V还可以是TLV三元组。
其中TAG表示的即是数据类型,ASN.1 提供了一些基本的预定义数据类型:

UNIVERSAL 0 保留给编码规则使用
UNIVERSAL 1布尔类型
UNIVERSAL 2整型
UNIVERSAL 3零或多个比特的序列
UNIVERSAL4 零或多个字节的序列
UNIVERSAL5 NULL
UNIVERSAL 6 对象标识符类型
UNIVERSAL 7 对象描述符类型
UNIVERSAL 8 外部类型和类型实例
UNIVERSAL 9 实数类型
UNIVERSAL 10 枚举类型
UNIVERSAL 11 嵌入的 pdv 类型
UNIVERSAL 12 UTF8 字符串类型
UNIVERSAL 13 相关对象标识符类型
UNIVERSAL 14-15 保留给本建议的以后版本和国际标准使用
UNIVERSAL 16 序列和类型序列
UNIVERSAL 17 集合和类型的集合
UNIVERSAL 18-22, 25-30 字符串 类型
UNIVERSAL 23-24 时间 类型
UNIVERSAL 31-... 保留给本建议以外的类型和国际标准使用

ASN.1 还能够定义如下的数据结构类型:

结构 ( SEQUENCE )
列表 ( SEQUENCE OF )
类型选择 ( CHOICE )

Length是表示后面Value的长度

例子:
02 02 27 7f 30 13 31 11 30 0f 06 03 55 04 03 0c 08 68 61 6e 67 7a 68 6f 75
02是类型Integer
02表⽰Len
27 7f表⽰10111
30表⽰BPMString
13表⽰Len
31 11 30 0f 06 03 55 04 03 0c 08 68 61 6e 67 7a 68 6f 75 表⽰CN=hangzhou

参考:
1、https://wenku.baidu.com/view/7763a04a5bfafab069dc5022aaea998fcc2240f0.html
2、https://baike.baidu.com/item/ASN.1/498523?fr=aladdin

ASN.1编码格式介绍相关推荐

  1. c语言 乱码转化为16进制_编码格式介绍及C语言处理汉字编码

    什么是编码格式 从一个小问题引入 我们在学习C语言的时候,有一道必做的题目是将大写字母转换成小写,相信有点基础的同学都能不加思索的写出下面的代码:char toLower(char upper){ i ...

  2. Unity 之 音频类型和编码格式介绍

    Unity 之 音频类型和编码格式介绍 一,加载音频文件 二,Load Type:加载类型 三,编码格式与品质级别 Inspector窗口显示多个导入设置.这些设置决定了:加载行为,压缩行为,质量,采 ...

  3. 转载 各种主流音频/视频编码格式介绍

    周会,老大发话了:作为一名多媒体软件工程师,总不能对音视频格式.对H263与H264之间区别一点都说不上来吧? 说来惭愧,本人的确对这些都了解不够,课下要多花点时间来补补相关知识了. 以下转自: ht ...

  4. java 解析ASN.1 编码格式cdr话单文件例子

    java 解析ASN.1 编码格式cdr话单文件例子.程序中并没有将文件所有内容正确解析,只是一个例子

  5. 证书文件编码格式介绍

    OpenSSL中虽然使用PEM作为基本的文件编码格式,但是,由于不同的对象其封装和标准格式不太一样,所以经常会导致读者产生迷惑. 一.数据编码格式 首先介绍一下ASN.1(Abstract Synta ...

  6. asn浅析--简单介绍

    asn1是一种自组织自定义的数据结构,它是自洽的,几乎不需要外界的参与就能自己解释自己,这就做到了与机器无关,与应用无关,尽可能的与环境无关,这就是它最大的优势.那么到底什么是asn结构呢,简单说它就 ...

  7. 音、视频编码格式介绍

    前言 文章来源于如下两个连接,我只是编辑一下,方便查阅. 视频编码介绍:http://blog.csdn.net/wcl0715/article/details/676137 音频编码介绍:http: ...

  8. VVC(H.266)视频压缩编码格式介绍

    VVC编码格式 在VVC中为了适应4K.8K等高清.超高清视频编码的需要,将 CTU的最大尺寸扩大到 128 ×128,最小尺寸还是 4×4. CTU可进一步分为若干编码单元(CU),最大的 CU 可 ...

  9. Redis数据类型及编码格式——介绍及String篇

    Redis核心对象 reids中定义了一个数据结构用来统一表示各种数据类型,它叫做redisObject typedef struct redisObject {unsigned type:4; // ...

最新文章

  1. element-ui + vue + node.js 与 服务器 Python 应用的跨域问题
  2. jquery实现跨域
  3. 二,zabbix与php的一些问题
  4. 手机号段对应地区编码_什么是编码器?了解两种类型的编码器
  5. Java Android客户端开发
  6. 华硕T100TA安装凤凰OS
  7. vss跟tfs_从VSS 2005迁移到TFS 2010后,VS 2008出现“差异”错误
  8. 一文入门Python基础
  9. 怎么攻击一个网站服务器ip,服务器被不同的IP攻击怎么破?
  10. java爬取网页上qq号,邮箱号等
  11. RCTF crypto100(1)
  12. 基于JavaSwing+Mysql的超市商品管理系统设计和实现
  13. 【Oracle】并行等待之PX Deq Credit: send blkd
  14. css3中-moz-、-ms-、-webkit-、-o-分别代表什么内核
  15. php 化学泥浆,天水化学泥浆
  16. Facebook 申请蓝色认徽章
  17. git clone时需要密码
  18. 投票小程序制作开发有哪些步骤?投票小程序开发有哪些功能?
  19. Lexical error at line 1, column 18. Encountered: “\u2019“ (8217), after : ““]
  20. Linux常用英文总结

热门文章

  1. 微信小程序清除缓存/退出登录
  2. 网站HTTPS是有什么用吗
  3. 中国光伏建筑一体化(BIPV)行业发展趋势前瞻与四五战略规划研究报告2022-2028年
  4. c++调用python接口_Python调用有道智云文本翻译API接口实现“智能”伪原创
  5. openwrt-AR系列flash地址分区及系统烧写
  6. Annovar 软件注释流程
  7. 关于os.system和os.popen的坑
  8. TFN FM150系列OTDR评性能如何
  9. 安装 WineHQ 安装包
  10. 剑侠情缘测试版网络验证