2013-07-27 234 views
-1

我正在開發一個Java項目。我需要生成一個RSA密鑰對,然後使用它們與其他人進行通信。Java密鑰庫私鑰導入

我看到KeyStore可以存儲KeyStore.PrivateKeyEntry,但它需要一個Certificate []鏈。我已經創建了使用我的功能的證書,但現在我只有一個帶私鑰的證書,而不是證書鏈?我如何以編程方式將此私鑰和證書存儲在密鑰庫中?

或者如果有一種方法只能添加私鑰和公鑰而不是證書。我可以稍後使用該私鑰來創建我的證書。

有沒有人可以粘貼一些用於存儲私鑰和公​​鑰的示例代碼。

+0

爲什麼?爲什麼不像其他人一樣使用SSL? – EJP

+0

因爲,我需要創建私有密鑰和公共密鑰,它必須是自動的一切。所以我不能使用SSL。我已經做了所有事情,但只是將私鑰添加到密鑰存儲庫是一個問題:( –

+0

那麼,同行們如何知道您生成的公鑰是由您擁有的?您是否真的認爲這是正確的?如上所述,您提出的系統是效率低下,可能不安全 – EJP

回答

0

其實這並不是很困難。只需創建一個帶有一個條目的證書[...]即可。

這假定您的證書是自簽名證書。如果您的證書實際上由另一個實體簽名,那麼最好將整個證書鏈放入證書數組中。

ex。

X509Certificate myCert = ... 

KeyStore ks = ... 

Certificate [] certArray = { myCert }; 

ks.setKeyEntry(alias, key, certArray);