一、證書編碼格式
1.DER(Distinguished Encoding Rules)
DER是二進制格式,不可讀。查看DER格式證書的信息
openssl x509 -in certificate.der -inform der -text -noout
2.PEM(Privacy Enhanced Mail)
是一種保密郵件的編碼標准。PEM以"-----BEGIN"開頭, "-----END"結尾,內容以BASE64編碼.
查看PEM格式證書的信息:
openssl x509 -in certificate.pem -text -noout
JCE本身是支持DER編碼密鑰對的解析的,可以參見PKCS8EncodedKeySpec和X509EncodedKeySpec.
JCE沒有對PEM直接支持的方式,但是可以通過第三方包例如bouncycastle
二、PKCS(The Public-Key Cryptography Standards )
是由美國RSA數據安全公司及其合作伙伴制定的一組公鑰密碼學標准,其中包括證書申請、證書更新、證書作廢表發布、擴展證書內容以及數字簽名、數
字信封的格式等方面的一系列相關協議。到1999年底,PKCS已經公布了以下標准:
PKCS#1:定義RSA公開密鑰算法加密和簽名機制,主要用於組織PKCS#7中所描述的數字簽名和數字信封。
PKCS#3:定義Diffie-Hellman密鑰交換協議
PKCS#5:描述一種利用從口令派生出來的安全密鑰加密字符串的方法。使用MD2或MD5 從口令中派生密鑰,並采用DES-CBC模式加密。主要用於加密
從一個計算機傳送到另一個計算機的私人密鑰,不能用於加密消息。
PKCS#6:描述了公鑰證書的標准語法,主要描述X.509證書的擴展格式
PKCS#7:定義一種通用的消息語法,包括數字簽名和加密等用於增強的加密機制,PKCS#7與PEM兼容,所以不需其他密碼操作,就可以將加密的消息轉
換成PEM消息
PKCS#8:描述私有密鑰信息格式,該信息包括公開密鑰算法的私有密鑰以及可選的屬性集等
PKCS#9:定義一些用於PKCS#6證書擴展、PKCS#7數字簽名和PKCS#8私鑰加密信息的屬性類型
PKCS#10:描述證書請求語法
PKCS#11:稱為Cyptoki,定義了一套獨立於技術的程序設計接口,用於智能卡和PCMCIA卡之類的加密設備
PKCS#12:描述個人信息交換語法標准。描述了將用戶公鑰、私鑰、證書和其他相關信息打包的語法
PKCS#13:橢圓曲線密碼體制標准
PKCS#14:偽隨機數生成標准。
PKCS#15:密碼令牌信息格式標准