This question already has an answer here:
What are the differences between .pem, .cer and .der?
(1个答案)
4年前关闭。
在密码学中,X.509和pem有什么区别?
X.509格式可以包含私钥吗?私钥可以采用pem格式吗?
由于十六进制对表示二进制数据无用,因为它需要的空间是原始数据的两倍,因此使用了更有效的Base64编码。特殊的页眉和页脚用于表示嵌入式对象类型:
X.509证书
X.509证书吊销列表
X.509证书申请
PKCS#1私钥
PKCS#8私钥
等等。
(1个答案)
4年前关闭。
在密码学中,X.509和pem有什么区别?
X.509格式可以包含私钥吗?私钥可以采用pem格式吗?
最佳答案
X.509是一系列标准,而PEM只是文件中的X.509对象表示形式(编码)。从字面上看,任何数据都可以PEM格式表示。可以转换为字节数组的任何内容(由于RAM是一个非常大的字节数组,因此可以转换为任何东西)都可以PEM格式表示。
所有X.509对象都是可传输的,并通过使用抽象语法表示法一(ASN.1)作为字节数组来表示。字节数组在网络上传输时很棒,但在某个地方存储时并不总是有用。另一件事是,如果不进行全面的内容分析,就无法轻松确定X.509对象类型。
PEM 代表“隐私增强邮件”,在RFC1421中定义。尽管PEM是出于一些不同的目的而开发的,但该标准定义了PEM表示形式,尤其是在仅需要用可打印字符表示不可打印字符的情况下。在加密中,PEM仅与X.509对象表示相关联。此外,PEM还提供其他数据来标识嵌入式对象。
X.509对象的ASN.1形式是一个字节数组,例如(代表字节的八位字节系列):
3a 20 63 65 72 74 6c 69 62 5c 6c 64 61 70 2e 63
70 70 28 32 31 33 31 29 3a 20 6c 64 61 70 65 72
由于十六进制对表示二进制数据无用,因为它需要的空间是原始数据的两倍,因此使用了更有效的Base64编码。特殊的页眉和页脚用于表示嵌入式对象类型:
X.509证书
-----BEGIN CERTIFICATE-----
MIIEITCCA+CgAwIBAgIUKMmxmDbjbHqt+Yzwj5lflBxuQwEwCQYHKoZIzjgEAzAjMSEwHwYDVQQD
ExhUb2tlbiBTaWduaW5nIFB1YmxpYyBLZXkwHhcNMTIxMTE2MTgzODMwWhcNMTIxMTIzMTgzODMw
WjAtMSswKQYDVQQDHiIAYgBiADEANAAxADkAYQAyAGMAZgBjADEAZQAwADAAOAAAMIGfMA0GCSqG
<...>
-----END CERTIFICATE-----
X.509证书吊销列表
-----BEGIN X509 CRL-----
MIIDBjCCAm8CAQAwcTERMA8GA1UEAxMIcXV1eC5jb20xDzANBgNVBAsTBkJyYWlu
czEWMBQGA1UEChMNRGV2ZWxvcE1lbnRvcjERMA8GA1UEBxMIVG9ycmFuY2UxEzAR
BgNVBAgTCkNhbGlmb3JuaWExCzAJBgNVBAYTAlVTMIGfMA0GCSqGSIb3DQEBAQUA
<...>
-----END X509 CRL-----
X.509证书申请
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDBjCCAm8CAQAwcTERMA8GA1UEAxMIcXV1eC5jb20xDzANBgNVBAsTBkJyYWlu
czEWMBQGA1UEChMNRGV2ZWxvcE1lbnRvcjERMA8GA1UEBxMIVG9ycmFuY2UxEzAR
BgNVBAgTCkNhbGlmb3JuaWExCzAJBgNVBAYTAlVTMIGfMA0GCSqGSIb3DQEBAQUA
<...>
-----END NEW CERTIFICATE REQUEST-----
PKCS#1私钥
-----BEGIN RSA PRIVATE KEY-----
MIIDBjCCAm8CAQAwcTERMA8GA1UEAxMIcXV1eC5jb20xDzANBgNVBAsTBkJyYWlu
czEWMBQGA1UEChMNRGV2ZWxvcE1lbnRvcjERMA8GA1UEBxMIVG9ycmFuY2UxEzAR
BgNVBAgTCkNhbGlmb3JuaWExCzAJBgNVBAYTAlVTMIGfMA0GCSqGSIb3DQEBAQUA
<...>
-----END RSA PRIVATE KEY-----
PKCS#8私钥
-----BEGIN PRIVATE KEY-----
MIIDBjCCAm8CAQAwcTERMA8GA1UEAxMIcXV1eC5jb20xDzANBgNVBAsTBkJyYWlu
czEWMBQGA1UEChMNRGV2ZWxvcE1lbnRvcjERMA8GA1UEBxMIVG9ycmFuY2UxEzAR
BgNVBAgTCkNhbGlmb3JuaWExCzAJBgNVBAYTAlVTMIGfMA0GCSqGSIb3DQEBAQUA
<...>
-----END PRIVATE KEY-----
等等。
10-06 03:48