1. Attribute Type编码

​ 对于标识串,采用低标识编码方式,只需1个字节。OBJECT IDENTIFIER的 tag为Ox06;class选择universal,则位8和位7为0,OBJECT IDENTIFIER为基本类型,则位6为0。因此,标识串=0x06。

​ 对于长度串,采用短型编码方式,只需1个字节。

​ 对于内容串,由3个字节组成。2.5.4.6编码为55 04 06,2.5.4.10编码为5504 0A,2.5.4.3编码为55 04 03。

2. AttributeValue编码

​ 对于标识串,采用低标识编码方式,只需1个字节。PrintableString 的 tag 为 0x 13; class选择universal,则位8和位7为0,OBJECT IDENTIFIER为基本类型,则位6为0。因此,标识串=0x13。

​ 对于长度串,采用短型编码方式,只需1个字节。对于内容串,由其ASCII码组成。

​ countryName为“CN”,organizationName为"20181230", commonName="zhuyoumin"

AttributeValue 标识符 长度串 内容串
"CN" 13 02 43 4E
"20181230" 13 08 32 30 31 38 31 32 33 30
"zhuyoumin" 13 09 7A 68 75 79 6F 75 6D 69 6E

3. AttributeValueAssertion编码

​ 对于标识串,采用低标识编码方式,只需1个字节。SEQUENCE的 tag 为0x10;class选择universal,则位8和位7为0,SEQUENCE为结构类型,则位6为1。因此,标识串=0x30。

​ 对于长度串,采用短型编码方式,只需1个字节。

​ 对于内容串,由AttributeType和 AttributeValue的 DER编码值组成。

AttributeValueAssertion 标识符 长度串 内容串
countryName="CN" 30 09 06 03 55 04 06 13 02 43 4E
organizationName="20181230" 30 0F 06 03 55 04 0A 13 08 32 30 31 38 31 32 33 30
commonName="zhuyoumin" 30 10 06 03 55 04 03 13 09 7A 68 75 79 6F 75 6D 69 6E

4. RelativeDistinguishedName编码

​ 对于标识串,采用低标识编码方式,只需1个字节。SET OF的 tag 为0x11; class 选择universal,则位8和位7为0,SET OF为结构类型,则位6为1。因此,标识串=0x31。

​ 对于长度串,采用短型编码方式,只需1个字节。

​ 对于内容串,由Attribute ValucAssertion的 DER编码值组成。

RelativeDistinguishedName 标识符 长度串 内容串
countryName="CN" 31 0B 30 09 06 03 55 04 06 13 02 43 4E
organizationName="20181230" 31 11 30 0F 06 03 55 04 0A 13 08 32 30 31 38 31 32 33 30
commonName="zhuyoumin" 31 12 30 10 06 03 55 04 03 13 09 7A 68 75 79 6F 75 6D 69 6E

5. RDNSequence编码

​ 对于标识串,采用低标识编码方式,只需1个字节。SEQUENCE OF的 tag 为0x10;class选择universal,则位8和位7为0,SEQUENCE OF为结构类型,则位6为1。因此,标识串=0x30。

​ 对于长度串,采用短型编码方式,只需1个字节。

​ 对于内容串,由3个 RelativeDistinguishedName的 DER编码值组成。

RDNSequence 标识符 长度串 内容串
countryName="CN" 30 0D 31 0B 30 09 06 03 55 04 06 13 02 43 4E
organizationName="20181335" 30 13 31 11 30 0F 06 03 55 04 0A 13 08 32 30 31 38 31 33 33 35
commonName="zhangyy" 30 14 31 12 30 10 06 03 55 04 03 13 09 7A 68 61 6E 67 79 79

6. Name编码

最终编码为:

\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x4E\x32\x30\x31\x38\x31\x33\x33\x35\x31\x12\x30\x10\x06\x03\x55\x04\x03\x13\x09\x7A\x68\x61\x6E\x67\x79\x79

 

最新文章

  1. python django基础(一)
  2. mac或linux下xampp的mysql配置
  3. [转]使用Java Mission Control进行内存分配分析
  4. MySQL使用Union创建视图报错
  5. 基于visual Studio2013解决C语言竞赛题之0506选择排序
  6. uC/OS II 函数说明 之–OSTaskCreate()与OSTaskCreateExt()
  7. oschina图形和图像工具开源软件
  8. Android Things教程:电气基础之直流电路理论
  9. js-location应用
  10. Windows下为PHP安装redis扩展
  11. 用scheme重写Python的三大函数map reduce 和filter
  12. Django-ORM增删改查
  13. Workbook导出excel封装的工具类
  14. tomcat8_java1.8 基础镜像
  15. 使用Python解析JSON详解
  16. nodejs结合apiblue实现MockServer
  17. AngularJS标准Web业务流程开发框架—1.AngularJS模块以及启动分析
  18. 【POJ】1419:Graph Coloring【普通图最大点独立集】【最大团】
  19. Python 扩展知识:编程习惯
  20. Browser对象之Window对象

热门文章

  1. LocalDateTime与LocalDate
  2. 掌控安全学院SQL注入靶场延时注入
  3. Delphi 多进程共享内存的简单封装单元
  4. win10输入法微软拼音被禁用
  5. js 自定義event
  6. 实验1task1
  7. 搭建Kubord管理k8s/EKS以及Harbor私有仓库教程
  8. 查询正在执行的SQL的数据库名和表名
  9. 解决mysql使用sql文件不能还原数据库的问题
  10. 把本地项目上传到github