数据编码格式
ASN.1(Abstract Syntax Notation dotone),抽象语法标记1。是定义抽象数据类型形式的标准,是用于描述数据表示、表示、传输、编码的记法。
ASN.1是一种结构化的数字对象描述语言,它包括了两个部分:
- 数据描述语言(ISO8824)
- 数据编码规则(ISO8825)
ASN.1的数据描述语言标准允许用户自定义基本数据类型,并可以通过简单的数据类型组成更复杂的数据类型。
ASN.1提供了多种数据编码方法:
- BER(Basic Encode Rules),基本编码规则
- CER(Canonical Encoding Rules),规范编码规则
- DER(Distinguished Encoding Rules),唯一编码规则
- PER(PackedEncoding Rules),压缩编码规则
- XML(XER,XML Encoding Rules),XML编码规则
目前经常被采用的是BER编码,但是BER编码具有编码不唯一的性质,也就是说,一个相同的对象通过BER编码可能会产生几种不同的编码数据。所以,在 OpenSSL和其他密码学相关软件中经常使用BER的一个子集DER。对于每一个ASN.1对象,使用DER编码得出的二进制编码数据是唯一的。
PEM编码全称是Privacy Enhanced Mail,是一种保密邮件的编码标准。通常来说,对信息的编码过程基本如下:
(1)信息转换为ASCII码或其他编码方式,比如采用DER编码。
(2)使用对称加密算法加密经过编码的信息。
(3)使用BASE64对加密后的信息进行编码。
(4)使用一些头定义对信息进行封装,主要包含了进行正确解码需要的信息,头定义的格式如下:

本文介绍了OpenSSL中的数据编码格式,如ASN.1的BER、CER、DER、PER和PEM编码,以及它们在实际应用中的使用。重点讲解了PEM编码,它是基于DER编码并进行BASE64编码,常用于证书和密钥。接着阐述了X.509、PKCS#12和PKCS#7三种证书编码的区别和用法,以及密钥的PEM和DER编码方式。此外,还提及了CRL和OCSP在证书验证中的角色。
最低0.47元/天 解锁文章
1613

被折叠的 条评论
为什么被折叠?



