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

 

DER编码的更多相关文章

  1. DER编码简介

    概念:DER是BER的子集,它为每一个ASN.1类型定义一种唯一的编码方案. DER与BER的区别:DER在BER的基础上增加了如下限制:长度小于等于127,必须使用短型长度表示法.长度大于127,必 ...

  2. 密码学的基础:X.690和对应的BER CER DER编码

    目录 简介 BER编码 类型标识符 长度 内容 CER编码和DER编码 总结 简介 之前我们讲到了优秀的数据描述语言ASN.1,很多协议标准都是使用ASN.1来进行描述的.对于ASN.1来说,只定义了 ...

  3. JAVA解析各种编码密钥对(DER、PEM、openssh公钥)

    一.DER编码密钥对 先说下DER编码,是因为JCE本身是支持DER编码密钥对的解析的,可以参见PKCS8EncodedKeySpec和X509EncodedKeySpec. DER编码是ASN.1编 ...

  4. 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)

    之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂 ...

  5. 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)[zz]

    openssl dgst –sign privatekey.pem –sha1 –keyform PEM –c c:\server.pem 将文件用sha1摘要,并用privatekey.pem中的私 ...

  6. 数字证书简介及Java编码实现

    1.数字证书简介 数字证书具备常规加密解密必要的信息,包含签名算法,可用于网络数据加密解密交互,标识网络用户(计算机)身份.数字证书为发布公钥提供了一种简便的途径,其数字证书则成为加密算法以及公钥的载 ...

  7. openssl ans.1编码规则分析及证书密钥编码方式

    1 数据编码格式 openssl的数据编码规则是基于ans.1的,ans.1是什么 ? 先上高大上的解释 ASN.1(Abstract Syntax Notation One), 是一种结构化的描述语 ...

  8. 电子证书 DER & PEM & CRT & CER

    原文链接: http://blog.csdn.net/zqt520/article/details/26966603 证书与编码 本至上,X.509证书是一个数字文档,这个文档根据RFC 5280来编 ...

  9. DER、CRT、CER、PEM格式的证书及转换

    一.证书和编码 X.509证书,其核心是根据RFC 5280编码或数字签名的数字文档. 实际上,术语X.509证书通常指的是IETF的PKIX证书和X.509 v3证书标准的CRL 文件,即如RFC ...

  10. 关于x509、crt、cer、key、csr、pem、der、ssl、tls 、openssl等

    关于x509.crt.cer.key.csr.pem.der.ssl.tls .openssl等 TLS:传输层安全协议 Transport Layer Security的缩写 TLS是传输层安全协议 ...

随机推荐

  1. 转载-分享一个Ubuntu20.04安装以及中文教程

    https://blog.csdn.net/weixin_45912291/article/details/108901106 https://www.cnblogs.com/libotaoer/p/ ...

  2. ES6-Class类上

    一.基础认知 构造方法有点类似构造函数,前面学的构造函数是模拟类的,ES6用类即可 不能直接调用Person()报错,和构造函数不同,构造函数不加new调用也不报错: 一般在constructor里面 ...

  3. VS2019使用gtest

    VS2019使用gtest GoogleTest测试框架介绍(一)_liitdar的博客-CSDN博客_goole test 术语 test/test case/test suit Meaning G ...

  4. Scala集合排序

    Scala集合排序有三种方法:sorted.sortBy().sortWith() (1)sorted 对一个集合进行自然排序,通过传递隐式的Ordering源码中有两点值得注意的地方:1.sorte ...

  5. [Oracle19C ASM管理] ASM的网络服务

    启用了ASM集群以后,网络管理放给了grid用户.grid用户的$ORACLE_HOME/network/admin有网络配置文件,而oracle用户下的网络配置文件则不存在了. [grid@cent ...

  6. 把linux云服务器上的文件放到本地电脑windows上-----secureCRT

    1.本地电脑需要安装SecureCRT 2.在secureCRT上登录云端服务器,右键点击云端服务器上方的ip地址,选择"connect SFTP session" 3.在SFTP ...

  7. 渗透测试工具sqlmap基础教程 【转】

    转载请注明出处:http://blog.csdn.net/zgyulongfei/article/details/41017493 作者:羽龍飛 本文仅献给想学习渗透测试的sqlmap小白,大牛请绕过 ...

  8. css 选择器再学一遍记录一下*1

    1 <!DOCTYPE html> 2 <html> 3 <HEAD> 4 5 <style> 6 *{font-size: 12px; padding ...

  9. vue html转pdf并打印

    //文件名随便取一个如:htmlToPdf.js // 导出页面为PDF格式 import html2Canvas from 'html2canvas' import JsPDF from 'jspd ...

  10. 【Windows】Microsoft Store 应用列表

    更新优质微软商店应用: 『购买 WSA工具箱 - Microsoft Store zh-CN』 『购买 Apk安卓安装器 - Microsoft Store zh-CN』 『购买 KMS激活: Win ...