2012-07-30 135 views
0

我的应用程序需要在所有读取私钥(以及相关的公共证书),没有写入密钥库,没有密码更改,没有变化 - 只是阅读。 是否有人知道肯定读我可以使用此代码:读取和写入Java密钥库

///doing some actions 
KeyStore store = KeyStore.getInstance("foo", "bar"); 
store.load(iaminputstream, iampwd); // I'M JUST LOADING, I'M NOT GONNA STORE IT! 
PrivateKey pk = (PrivateKey) store.getKey(iamalias, iamkeypass); 
Certificate cert = store.getCertificate(iamalias); 
///contnuing some actions 

,而不是这样的:

///doing some actions 
KeyStore store = KeyStore.getInstance("foo", "bar"); 

try{ 
    store.load(iaminputstream, iampwd); //I'VE LOADED 

    PrivateKey pk = (PrivateKey) store.getKey(iamalias, iamkeypass); 
    Certificate cert = store.getCertificate(iamalias); 

} finally { 
    store.store(iamoutputstream, iampassword); //AND I'VE SAVED! 
} 
///contnuing some actions 

证明链接的高度赞赏!

+1

您是否确实运行了代码并发现了任何问题? – Nishan 2012-07-30 07:24:52

回答

4

当然你不需要保存它。只是不要忘记处理异常。 看看javadoc - load()调用后没有必要保存。

1

如果没有存储任何东西,你不必叫store.store()

但是千万要记得关闭InputStream和处理异常。