大家好,我試圖將我在java程序中生成的PKCS#8私鑰轉換爲PEM編碼文件。在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庫,所以也許它有一個我忽略的解決方案。
你試圖與哪些軟件進行互操作? (當你說,「它說這不是一個有效的文件,」它是什麼?) – erickson 2010-08-25 01:09:58
當我嘗試使用private.key進行各種操作時,Curl和OpenSSL也說同樣的事情。 – Hiro2k 2010-08-25 14:12:22
missing privatepemWriter.close(); //正確刷新。謝謝。 – 2010-11-17 12:53:30