DER编码
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编码的更多相关文章
- DER编码简介
概念:DER是BER的子集,它为每一个ASN.1类型定义一种唯一的编码方案. DER与BER的区别:DER在BER的基础上增加了如下限制:长度小于等于127,必须使用短型长度表示法.长度大于127,必 ...
- 密码学的基础:X.690和对应的BER CER DER编码
目录 简介 BER编码 类型标识符 长度 内容 CER编码和DER编码 总结 简介 之前我们讲到了优秀的数据描述语言ASN.1,很多协议标准都是使用ASN.1来进行描述的.对于ASN.1来说,只定义了 ...
- JAVA解析各种编码密钥对(DER、PEM、openssh公钥)
一.DER编码密钥对 先说下DER编码,是因为JCE本身是支持DER编码密钥对的解析的,可以参见PKCS8EncodedKeySpec和X509EncodedKeySpec. DER编码是ASN.1编 ...
- 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)
之前没接触过证书加密的话,对证书相关的这些概念真是感觉挺棘手的,因为一下子来了一大堆新名词,看起来像是另一个领域的东西,而不是我们所熟悉的编程领域的那些东西,起码我个人感觉如此,且很长时间都没怎么搞懂 ...
- 那些证书相关的玩意儿(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中的私 ...
- 数字证书简介及Java编码实现
1.数字证书简介 数字证书具备常规加密解密必要的信息,包含签名算法,可用于网络数据加密解密交互,标识网络用户(计算机)身份.数字证书为发布公钥提供了一种简便的途径,其数字证书则成为加密算法以及公钥的载 ...
- openssl ans.1编码规则分析及证书密钥编码方式
1 数据编码格式 openssl的数据编码规则是基于ans.1的,ans.1是什么 ? 先上高大上的解释 ASN.1(Abstract Syntax Notation One), 是一种结构化的描述语 ...
- 电子证书 DER & PEM & CRT & CER
原文链接: http://blog.csdn.net/zqt520/article/details/26966603 证书与编码 本至上,X.509证书是一个数字文档,这个文档根据RFC 5280来编 ...
- DER、CRT、CER、PEM格式的证书及转换
一.证书和编码 X.509证书,其核心是根据RFC 5280编码或数字签名的数字文档. 实际上,术语X.509证书通常指的是IETF的PKIX证书和X.509 v3证书标准的CRL 文件,即如RFC ...
- 关于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是传输层安全协议 ...
随机推荐
- StringBuilder 凭借字符串
//拼接信息 StringBuilder sb = new StringBuilder(); sb.Append("条码:00002"); sb.AppendLine(); sb. ...
- Linux_CMD_FOR_FILE&FOLDER
0,删除文件夹和子文件夹:rm -rf /xxx/xxx 0,拷贝整个文件夹:cp -r /xxx/xxx /ddd/ 0,改文件名:mv oldName newName 0,新建文件:touch f ...
- openssl常用操作
参考:https://www.golinuxcloud.com/openssl-view-certificate/ 查看证书信息 openssl x509 -in server.crt -text - ...
- 【java】MVC模式和三层架构
MVC是一种分层开发的模式 M:Model,业务模型,处理业务,存储数据,获取数据.JavaBean对象 V: View , 视图,界面展示,展示数据.JSP或HTML C: Controller, ...
- selenium最常用的基本方法
1.打开,关闭浏览器 打开chrome浏览器:webdriver.Chorme() 打开Firefox浏览器:webdriver.Firefox() 关闭当前浏览器窗口:driver.close() ...
- eclipse设置UTF-8(字符编码集)所有方式
一.全部方式 1.修改workspace编码 windows->preferences->gengral->workspace 选择other->UTF-8. 2.修改Con ...
- Vue之使用umy-ui库的u-table解决 el-table当存在大量数据时,界面操作卡顿。
提示:一.下面的1. 对应 二.下面的1.:2.则对应2. 错误排查:在使用中如果出现:readding 'style' undefined类似错误的, 可以先排查 u-table中height的值引 ...
- ESXI密码正确无法登录
场景描述: 今天新安装了一个VMware ESXi 6.5的系统,密码仍然用的习惯采用的密码.但在使用中,无论是使用vSphere Client连接,还是在vCenter Server中添加这台ESX ...
- 实现ViewPager一次滑动多页(保持居中)
项目中开发日历功能,需求是可以连续滑动多页,有列表的流畅.又要保持当前页居中显示. 参考文献: http://www.open-open.com/lib/view/open1435026935638 ...
- profile2的原理猜想
1, profile2 是一个 entity_type, 可以包含fields, 每个用户都对应一个profile的id, 其实就是type id, 就相当于bundle, 所谓的函数profile ...