2014-05-04 28 views
0

我正在嘗試編寫一個程序來生成PKCS#8 DER格式的RSA密鑰private.der和public.der。在Java程序中使用Keytool?

我可以在OpenSSL中手動輕鬆地做到這一點,但我不知道如何在java中做到這一點。我讀過關於Keytool,你也可以手動使用。但是我想在程序中自動執行該過程,以便每次程序運行時生成一個唯一可用的密鑰對,並將它們導出到一個文件夾。

任何幫助,將不勝感激。

+0

[OpenSSL命令在Java](https://stackoverflow.com/questions/23328928/openssl-commands-in-java)和[生成RSA密鑰對和編碼私人作爲字符串](https://stackoverflow.com /問題/ 1709441 /生成-RSA-密鑰對和 - 編碼 - 私有如串)。如果一切都失敗了,請嘗試[Google:java generate rsa keypair](https://www.google.com/search?q=java+generate+rsa+keypair)。 – jww

回答

1

密鑰生成的工作原理如下:

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); 
keyGen.initialize(2048); // Keysize 
KeyPair kp = keyGen.genKeyPair(): 
PrivateKey privKey = kp.getPrivate(); 
PublicKey pubKey = kp.getPublic(); 

然後使用privKey.getEncoded()pubKey.getEncoded()獲得編碼的版本。

+0

我該如何導出?我試圖轉換爲字節,然後寫入到fileoutputstream。但它說我不能將rsaPriv轉換爲字節?編輯:沒關係我想通了。感謝您的幫助,對不起,我以前看過這個源,但無法弄清楚如何實現它。 – Tevor

+0

@ user3579224請指出確切的錯誤和您的運行時間。我不認爲你的字符串''不能將rsaPriv轉換爲字節''在你的堆棧跟蹤或日誌文件中的任何地方。 –

+0

Drunix - 處理問題的首選方法,只需詢問答案而不需要進行研究或努力就是*不*回答它們。對這些類型的問題的答案不應該被投票。請參閱[問題質量下降堆棧溢出](https://meta.stackoverflow.com/questions/252506/question-quality-is-dropping-on-stack-overflow)。 – jww