密钥库文件格式keystore
格式 : JKS
扩展名 : .jks/.ks
描述 : [Java Keystore]密钥库的Java实现版本,provider为SUN
特点 : 密钥库和私钥用不同的密码进行保护
格式 : JCEKS
扩展名 : .jce
描述 : [JCE Keystore]密钥库的JCE实现版本,provider为SUN JCE
特点 : 相对于JKS安全级别更高,保护Keystore私钥时采用TripleDES
格式 : PKCS12
扩展名 : .p12/.pfx
描述 : [PKCS #12]个人信息交换语法标准
特点 : 1、包含私钥、公钥及其证书
2、密钥库和私钥用相同密码进行保护
格式 : BKS
扩展名 : .bks
描述 : Bouncycastle Keystore]密钥库的BC实现版本,provider为BC
特点 : 基于JCE实现
格式 : UBER
扩展名 : .ubr
描述 : [Bouncycastle UBER Keystore]密钥库的BC更安全实现版本,provider为BC
证书文件格式certificate
格式 : DER
扩展名 : .cer/.crt/.rsa
描述 : [ASN .1 DER]用于存放证书
特点 : 不含私钥、二进制
格式 : PKCS7
扩展名 : .p7b/.p7r
描述 : [PKCS #7]加密信息语法标准
特点 : 1、p7b以树状展示证书链,不含私钥
2、p7r为CA对证书请求签名的回复,只能用于导入
格式 : CMS
扩展名 : .p7c/.p7m/.p7s
描述 : [Cryptographic Message Syntax]
特点 : 1、p7c只保存证书
2、p7m:signature with enveloped data
3、p7s:时间戳签名文件
格式 : PEM
扩展名 : .pem
描述 : [Printable Encoded Message]
特点 : 1、该编码格式在RFC1421中定义,其实PEM是[Privacy-Enhanced Mail]的简写,但他也同样广泛运用于密钥管理
2、ASCII文件
3、一般基于base 64编码
格式 : PKCS10
扩展名 : .p10/.csr
描述 : [PKCS #10]公钥加密标准[Certificate Signing Request]
特点 : 1、证书签名请求文件
2、ASCII文件
3、CA签名后以p7r文件回复
格式 : SPC
扩展名 : .pvk/.spc
描述 : [Software Publishing Certificate]
特点 : 微软公司特有的双证书文件格式,经常用于代码签名,其中
1、pvk用于保存私钥
2、spc用于保存公钥
crt格式证书转为RSA公钥
Security.addProvider(new BouncyCastleProvider());
String path = "/Users/cliveyuan/data/keys/xxx.crt";
CertificateFactory cf = CertificateFactory.getInstance("X.509", "BC");
X509Certificate cert = (X509Certificate) cf.generateCertificate(new FileInputStream(path));
PublicKey publicKey = cert.getPublicKey();
String publicKeyString = Base64.encodeBase64String(publicKey.getEncoded());
System.out.println(publicKeyString);
本文由 Clive 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2021/08/10 17:12