Sau khi tạo khóa bí mật, làm cách nào để lưu trữ chúng bằng các phương thức của lớp Keystore và làm cách nào để tải các khóa?Làm thế nào để lưu trữ và tải các khóa bằng cách sử dụng lớp java.security.KeyStore
Trả lời
Lưu trữ:
KeyStore ks = KeyStore.getInstance("JKS");
ks.setKeyEntry("keyAlias", key, passwordForKeyCharArray, certChain);
OutputStream writeStream = new FileOutputStream(filePathToStore);
ks.store(writeStream, keystorePasswordCharArray);
writeStream.close();
Note thét certChain có thể là null, trừ khi bạn đang đi qua PrivateKey
Chở Hàng:
KeyStore ks = KeyStore.getInstance("JKS");
InputStream readStream = new FileInputStream(filePathToStore);
ks.load(readStream, keystorePasswordCharArray);
Key key = ks.getKey("keyAlias", passwordForKeyCharArray);
readStream.close();
Đọc EDIT javadocs
:
Lưu ý rằng nếu bạn đang lưu trữ một Khóa bí mật hoặc sử dụng bất kỳ phần nào của nhà cung cấp SunJCE (Phần mở rộng Mật mã Java), bạn sẽ cần phải đặt loại KeyStore của bạn thành JCEKS.
KeyStore ks = KeyStore.getInstance("JCEKS");
Tôi đánh giá cao nếu bạn giải thích thế nào tôi có thể sử dụng điều này với ssl/ứng dụng tls tôi (sslserversocketfactory) tôi cần phải cung cấp cho nó con đường của một chứng chỉ CA
tôi đã có một tình huống mà tôi đã không Tôi không biết tên bí danh chính, nhưng tôi biết chỉ có một khóa ở đó trong kho khóa. Tôi sử dụng đoạn mã sau để tải các khóa (sau khi tải keystore như trình bày ở trên):
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();
Tôi đã thêm một post on my blog với các chi tiết làm thế nào để tải các khóa riêng, khóa công khai và làm thế nào để sử dụng chúng.
- 1. Làm thế nào để sử dụng Quy trình lưu trữ và các loại phức tạp bằng cách sử dụng mẫu lưu trữ trong EF?
- 2. Sử dụng một Hashtable để chỉ lưu trữ các khóa?
- 3. Làm thế nào để lưu trữ CLLocation bằng cách sử dụng dữ liệu lõi (iPhone)?
- 4. Cách lưu trữ khóa được sử dụng để mã hóa các tệp
- 5. Làm thế nào để bạn lưu trữ markdown bằng cách sử dụng WMD trong ASP.NET?
- 6. Làm thế nào để lưu trữ dữ liệu trong cookie bằng cách sử dụng php?
- 7. Làm cách nào để lưu trữ và chuyển tiếp các vị trí bằng cách sử dụng tăng :: signal2?
- 8. Làm thế nào để ẩn một lớp bằng cách sử dụng từ khóa nội bộ?
- 9. Làm cách nào để lưu trữ tệp đã tải xuống bằng Java và Jersey?
- 10. Làm thế nào để lưu và tải một mảng các số phức bằng cách sử dụng numpy.savetxt?
- 11. Làm thế nào để xem Oracle lưu trữ thủ tục bằng cách sử dụng SQLPlus?
- 12. iPhone: Làm cách nào để lưu trữ UIImage bằng NSUserDefaults?
- 13. Làm thế nào để sử dụng phạm vi chức năng lưu trữ tải trong ExtJS
- 14. Làm thế nào để thực hiện hạn ngạch lưu trữ người dùng bằng cách sử dụng Amazon S3 như lưu trữ như dropbox hiện
- 15. Làm thế nào để lưu trữ một CBPeripheral để sử dụng trong các khung nhìn khác
- 16. Sắp xếp các lớp bằng cách sử dụng mẫu thiết kế kho lưu trữ
- 17. Lưu trữ khóa trong KeyChain bằng KeyChainItemWrapper
- 18. Làm thế nào để lưu trữ an toàn các khóa mã hóa trong java?
- 19. C - làm thế nào để sử dụng PROGMEM để lưu trữ và đọc mảng char
- 20. Cách tải lên và lưu trữ hình ảnh bằng công cụ ứng dụng google (java)
- 21. Làm thế nào để - Lưu trữ cặp giá trị khóa trong hai mảng chiều và HashTable bằng cách sử dụng JQuery?
- 22. Làm cách nào để sử dụng các khóa băm làm phương thức trên lớp?
- 23. Lưu trữ con trỏ bằng cách sử dụng QListWidgetItem :: setData
- 24. Làm thế nào để ngăn tải giá trị không được lưu trữ đồng thời nhiều lần?
- 25. Maven sử dụng kho lưu trữ sai để tải xuống
- 26. Khóa lưu trữ GAE và StringID
- 27. AES Mã hóa và lưu trữ khóa?
- 28. Làm thế nào để lưu trữ văn bản dài để MySql DB bằng cách sử dụng Rails?
- 29. Cách lưu trữ lớp tùy chỉnh bằng cách sử dụng CoreData
- 30. Cách tìm hiểu bằng cách sử dụng kho lưu trữ nội dung và Apache JackRabbit?