gpt4 book ai didi

encryption - .pem、.cer 和 .der 之间有什么区别?

转载 作者:行者123 更新时间:2023-12-03 05:50:23 26 4
gpt4 key购买 nike

.pem.cer.der 之间有什么区别?

据我所知,.cer包含公钥。是否有任何开放框架可供我使用此公钥加密我的数据?

最佳答案

.pem.cer.der 都是可能包含 X.509 v3 证书的文件的文件扩展名。

.der 扩展名

DER 是对构成证书的数据进行编码的方法。 DER 本身可以表示任何类型的数据,但通常它描述编码证书或 CMS 容器。 CMS 在 PKCS#7 中进行了描述(通常存储为 .p7),代表加密消息语法,可用于保护消息并存储证书以允许接收者构建到接收者信任存储中的证书。

证书的结构是使用 ASN.1 数据表示语言描述的。 BER和DER是ASN.1描述的数据的二进制编码方法。

.pem 扩展名

PEM 是一种将二进制数据编码为字符串的方法(也称为 ASCII 装甲)。它包含标题行和页脚行(指定编码的数据类型,如果数据链接在一起则显示开始/结束),中间的数据是 Base 64 数据。如果它对证书进行编码,它将仅包含 DER 证书的 Base 64 编码。 PEM 代表隐私增强邮件;邮件不能直接包含未编码的二进制值,例如 DER。

PEM 还可以编码/保护与证书相关的其他类型的数据,例如公钥/私钥、证书请求等。如果内容是常见的 X509v3 证书,则 PEM 编码为:

-----BEGIN CERTIFICATE-----
... base 64 encoding of the DER encoded certificate
with line endings and padding with equals signs ...
-----END CERTIFICATE-----

请注意,PEM 文件还可能包含完整的证书链,其中该链以服务的叶/结束证书开始,后跟对其进行签名的证书,通常直至但不包括受信任的根证书。因此,如果您丢失了证书,您可能需要查看第一个证书的后面。

.cer.crt 扩展名

.cer 仅代表证书。它通常是 DER 编码的数据,但 Windows 也可能接受 PEM 编码的数据。您需要查看内容(例如,在 posix 系统上使用 file 实用程序)以百分百确定文件中的内容。

其他 OpenSSL 格式

看看this answer有关 OpenSSL 支持的内容的更广泛列表。

<小时/>

要使用证书中包含的公钥(以及由证书中的签名签名),您应该使用任何能够解析 X.509 证书并执行 RSA 的库加密。您可以使用检测/处理 PEM 编码的工具,或者您可以首先通过剥离 PEM 编码将证书转换为 DER。

OpenSSL 命令行包含许多选项,可用于在 PEM 和 DER 之间进行转换、打印出高级证书信息或解析 ASN.1 以获取其中内容的低级 View 。

详细信息

与大多数 ASN.1 结构一样,DER 编码证书始终以字节 30 开头,它是 ASN.1 SEQUENCE 的标签编码。如果您在文件中看到大量重复内容,那么这没有问题;这只是严格定义的结构

同样,PEM 编码文件中的基数 64 始终以字母 M 开头,就像 ASN.1 SEQUENCE 以字节 30,所以前 6 位是 001100,它转换为数字 12,它是字母表中第 13 个字母 M 的索引。

关于encryption - .pem、.cer 和 .der 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22743415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com