2013-07-27 185 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);