Base64 编码证书的文件转换成certificate

将上篇日志中的输出结果转换回为x509证书

static public java.security.cert.X509Certificate fromString(String cert)
{
try
{
if (null == certificateFactory)
certificateFactory = java.security.cert.CertificateFactory.getInstance
("X.509");
final String strCertificate = "-----BEGIN CERTIFICATE-----\n"
+ cert
+ "\n-----END CERTIFICATE-----\n";
final java.io.ByteArrayInputStream streamCertificate = new java.io.ByteArrayInputStream
(strCertificate.getBytes("UTF-8"));
return (java.security.cert.X509Certificate)certificateFactory.generateCertificate
(streamCertificate);
}
catch (Exception ex)
{


System.out.println( ex.getMessage());
}
return null;
}


如果你已经有了RSA公钥和私钥的base64编码字符,可以使用Java的KeyStore API和Bouncy Castle库将其转换为PFX证书。以下是一个使用Java KeyStore和Bouncy Castle库生成PFX证书的示例代码: ```java import java.io.*; import java.security.*; import java.security.cert.*; import java.util.*; import org.bouncycastle.jce.provider.*; import org.bouncycastle.openssl.*; import org.bouncycastle.openssl.jcajce.*; import org.bouncycastle.pkcs.*; import org.bouncycastle.pkcs.jcajce.*; import org.bouncycastle.util.io.pem.*; public class GeneratePFX { public static void main(String[] args) throws Exception { // 创建Bouncy Castle提供商 Security.addProvider(new BouncyCastleProvider()); // 加载公钥和私钥 byte[] publicKeyBytes = Base64.getDecoder().decode("public_key_base64"); byte[] privateKeyBytes = Base64.getDecoder().decode("private_key_base64"); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PublicKey publicKey = keyFactory.generatePublic(new X509EncodedKeySpec(publicKeyBytes)); PrivateKey privateKey = keyFactory.generatePrivate(new PKCS8EncodedKeySpec(privateKeyBytes)); // 创建证书 X509Certificate cert = ... // 创建证书的代码,此处省略 // 创建KeyStore KeyStore keyStore = KeyStore.getInstance("PKCS12"); keyStore.load(null, null); keyStore.setKeyEntry("alias", privateKey, null, new Certificate[] {cert}); // 创建PFX文件 PKCS12PfxPdu pfx = new JcaPKCS12Converter().setProvider("BC").getPfx(keyStore, null); FileOutputStream fos = new FileOutputStream("path/to/certificate.pfx"); fos.write(pfx.getEncoded()); fos.close(); } } ``` 其中,`public_key_base64`和`private_key_base64`分别为RSA公钥和私钥的base64编码字符,`path/to/certificate.pfx`为要生成的PFX文件的路径。使用以上代码可以生成PFX文件。注意,在实际应用中需要根据具体情况修改代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值