0
A
回答
4
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-----
等。
相關問題
- 1. X.509證書和WTLS證書之間的區別是什麼
- 2. int * x []和int(* x)[]之間的區別?
- 3. null == x和x == null之間的區別?
- 4. IsNull(x)和x =「」之間有區別嗎?
- 5. TOP X和Row_Number之間的區別()
- 6. x:Key和x之間的區別:名稱
- 7. UNHEX和X之間的區別(MySQL)
- 8. .pem和.pb7,.p12格式之間的區別
- 9. .pem,.cer和.der之間有什麼區別?
- 10. $('x> y'),$('y','x')和$('x y')之間有什麼區別?
- 11. 當我<x和範圍(x)中的i之間的區別?
- 12. 「導入X」和「從X導入*」之間的區別?
- 13. 傳遞(int x)和(const int x)之間的區別
- 14. iPhone SDK 3.x和4.x之間的區別
- 15. int(x)和mediumint(x)之間的區別 - MySQL
- 16. x和get(「x」)之間的奇異區別?
- 17. OpenGL 3.x和4.X之間的區別?
- 18. Rails 1.X和2.X之間的主要區別是什麼
- 19. Emacs客戶端:C-x k和C-x之間的區別#
- 20. android 1.x和2.x之間的主要區別
- 21. Python中F(x)和F x之間的區別
- 22. C中「* x = 1」和「x = 1」之間的區別是什麼?
- 23. * x = i和x =&i之間的區別是什麼
- 24. Angular 1.X和2.X之間的區別是什麼
- 25. .at(vect.size())= x之間的區別;和vect.push_back(x);
- 26. x |之間的區別y和y <(x)在bash中?
- 27. const int&x = 4和const int x = 4之間的區別
- 28. char * x和char * x [80]之間的區別?
- 29. Tibco businessworks 5.x和6.x之間的區別
- 30. (重複)'public int x'之間的區別和'public int x {get;組; }