大家好,我正在尝试将我在Java程序中生成的PKCS#8私钥转换为PEM编码文件。
Security.addProvider(new BouncyCastleProvider());
SecureRandom rand = new SecureRandom();
JDKKeyPairGenerator.RSA keyPairGen = new JDKKeyPairGenerator.RSA();
keyPairGen.initialize(2048, rand);
KeyPair keyPair = keyPairGen.generateKeyPair();
PEMWriter privatepemWriter = new PEMWriter(new FileWriter(new File(dir + "private.key")));
privatepemWriter.writeObject(keyPair.getPrivate());
运行该程序后,我有两种格式的私钥和一个公钥(该代码无法正常显示)。然后,我使用此openssl命令将private.key转换回pem格式的文件。
openssl pkcs8 -nocrypt -inform DER -in private.key -out private2.pem
当我比较private.pem和private2.pem时,它们是不同的,并且显然当我尝试使用private.pem时,它说这不是有效文件。
为了将此私钥正确转换为所需的PEM格式,我缺少什么步骤?我不能在程序中使用OpenSSL,否则我只会添加该函数调用。我可以在此程序中访问BouncyCastle库,因此也许它具有我忽略的解决方案。
您可以在Bouncycastle中使用PEMWriter类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句