OpenSSL之八:文件编码格式

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据编码格式

ASN.1(Abstract Syntax Notation dotone),抽象语法标记1。是定义抽象数据类型形式的标准,是用于描述数据表示、表示、传输、编码的记法。
ASN.1是一种结构化的数字对象描述语言,它包括了两个部分:

  1. 数据描述语言(ISO8824)
  2. 数据编码规则(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)使用一些头定义对信息进行封装,主要包含了进行正确解码需要的信息,头定义的格式如下:

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二流人物

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值