創建密鑰後,如何使用Keystore類的方法存儲它們以及如何加載密鑰?如何使用java.security.KeyStore存儲和加載密鑰類
17
A
回答
21
儲存:
KeyStore ks = KeyStore.getInstance("JKS");
ks.setKeyEntry("keyAlias", key, passwordForKeyCharArray, certChain);
OutputStream writeStream = new FileOutputStream(filePathToStore);
ks.store(writeStream, keystorePasswordCharArray);
writeStream.close();
注泰德certChain可能是空的,除非你是路過PrivateKey
加載:
KeyStore ks = KeyStore.getInstance("JKS");
InputStream readStream = new FileInputStream(filePathToStore);
ks.load(readStream, keystorePasswordCharArray);
Key key = ks.getKey("keyAlias", passwordForKeyCharArray);
readStream.close();
閱讀javadocs
編輯:
請注意,如果您要存儲SecretKey或使用SunJCE提供程序的任何部分(Java Cryptography Extension),則需要將KeyStore類型設置爲JCEKS。
KeyStore ks = KeyStore.getInstance("JCEKS");
如果你解釋如何使用這跟我的SSL/TLS的應用程序(的SSLServerSocketFactory)我會很感激,我需要給它一個CA證書
3
我在那裏我沒有一個局面的路徑不知道密鑰別名,但我知道密鑰庫中只有一個密鑰。我用下面的代碼加載密鑰(加載密鑰庫後如上圖所示):
Enumeration<String> aliases = keyStore.aliases();
String alias = aliases.nextElement();
KeyStore.PrivateKeyEntry keyEnt = (KeyStore.PrivateKeyEntry) keyStore.getEntry(alias,
new KeyStore.PasswordProtection(keystorePass.toCharArray()));
PrivateKey privateKey = keyEnt.getPrivateKey();
我加了post on my blog與如何加載私鑰,公鑰以及如何使用它們的詳細信息。
相關問題
- 1. 如何存儲加密密鑰.NET
- 2. 從配置源加載和存儲加密密鑰
- 3. SSL中使用的信任存儲和密鑰存儲如何?
- 4. AES加密和密鑰存儲?
- 5. RSA加密,密鑰存儲
- 6. 加密密鑰存儲
- 7. 如何使用Java中的引腳/密碼加載Windows-MY密鑰存儲?
- 8. 使用Bouncy Castle加密和存儲私鑰+公鑰
- 9. 如何使用Android密鑰存儲提供程序存儲密鑰
- 10. 如何添加指紋密鑰存儲
- 11. 爪哇 - 如何存儲密鑰,密鑰存儲
- 12. Android的密鑰存儲提供商 - 如何存儲密鑰
- 13. iOS的鑰匙串和加密密鑰,如何保持安全,直到存儲
- 14. 存儲密鑰
- 15. 存儲密鑰
- 16. Java加密存儲器類加載器
- 17. 信任存儲和密鑰存儲如何保護根證書和私鑰?
- 18. 如何在JSONStore中存儲加密密鑰/密碼
- 19. oracle存儲過程加密密鑰
- 20. 如何鏈接數據存儲和文檔使用密鑰
- 21. 使用iOS的鑰匙串來存儲密鑰和API調用
- 22. java.security.KeyStore使用什麼算法來加密KeyStore.setKeyEntry()和KeyStore.store()中的privateKey?
- 23. 什麼用於加密密鑰和存儲位置?
- 24. 解密存儲Java密鑰存儲
- 25. 如何使用主密鑰存儲多個ID /密碼
- 26. 如何使用java在密鑰註冊表中存儲密碼?
- 27. 如何使用任何密鑰加密
- 28. 集和java.security.KeyStore中的PKCS11獲得DES密鑰
- 29. 何處存儲AES密鑰?
- 30. 使用存儲在KeyStore中的密鑰加密領域