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是传输层安全协议 ...
随机推荐
- java-文件IO常用操作对比
文件IO中,常用的方法如下方代码中的readMethod1~8方法所示. 测试了2.5M读100次.100M读3次.250M读1次三种情况,耗时(单位:毫秒)如下: 2.5M读100次 2.5M读10 ...
- js中的base64转化
创建一个base64.js文件,将以下代码粘贴进去 var Base64= { _keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst ...
- 51电子-STC89C51开发板:程序烧录(刷写) 到 IC 设置
全部内容,请点击: 51电子-STC89C51开发板:<目录> --------------------------- 正文开始 --------------------------- ...
- springcloud(七) - Sleuth链路追踪
服务跟踪的具体步骤 sleuth系统自动埋点并把数据发给zipkin,ziplin负责存储和展示数据. 具体实现 cmd执行jar 代码执行(server.licent都需要配) <!-- 添加 ...
- 实验1task1
<实验结论> #include <stdio.h> #include <stdlib.h> int main() { printf(" O \n&qu ...
- APP与Web测试区别
相同点: WEB 测试和 App 测试从流程上来说,没有区别.都需要经历测试计划方 案,用例设计,测试执行,缺陷管理,测试报告等相关活动.从技术上来说, WEB 测试和 APP 测试其测试类型也基本相 ...
- 谷歌Chrome浏览器网页中看视频出现绿屏、闪烁和花屏等显示问题解决方法
方法一(推荐): 1.在chrome地址栏输入chrome://flags/2.搜索Hardware-accelerated video encode把Enabled改成Disabled 3.搜索Ha ...
- docker-compose 文件
安装 curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s` ...
- gl-ar750 配置
镜像下载https://docs.gl-inet.com/en/3/release_notes/gl-ar750/设置sd卡安装软件https://openwrt.org/docs/guide-use ...
- go组合
package main import "fmt" func main() { aa := []string{"a", "b", " ...