一、证书编码格式
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:密码令牌信息格式标准