2012-06-25 17 views
7

Wszystko. Pracuję nad projektem Android. Muszę wygenerować parę kluczy RSA, a następnie użyć ich do komunikacji z innymi. Muszę przechowywać klucz prywatny i klucz publiczny w bezpiecznym miejscu i mogę znaleźć KeyStore.Jak przechowywać klucz prywatny i klucz publiczny w KeyStore

Widzę, że KeyStore może przechowywać KeyStore.PrivateKeyEntry, ale potrzebuje łańcucha Certificate []. Próbowałem go utworzyć, ale nie powiodło się ...

Czy ktoś może wkleić przykładowy kod służący do przechowywania klucza prywatnego i klucza publicznego.

Dziękuję bardzo!

+1

Witam, Czy trzeba programowo tworzyć certyfikaty/zarządzać nimi? Ponieważ nie trzeba pisać żadnego kodu, aby tworzyć lub importować certyfikaty do magazynu kluczy. Możesz użyć [keytool] (http://docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html) do tego. – sperumal

+0

Witam supermale, dziękuję za odpowiedź. Muszę zakończyć programowo. –

+0

zapoznaj się z dokumentami http://docs.oracle.com/javase/6/docs/api/java/security/KeyStore.html –

Odpowiedz

6

Tak jak powiedziałeś, aby zapisać klucz prywatny w magazynie kluczy, potrzebujesz klucza prywatnego (który posiadasz) i łańcucha certyfikatów dla odpowiedniego klucza publicznego. To, co masz, to tylko klucz publiczny, musisz uzyskać certyfikat od organu na podstawie Twojego klucza publicznego. Tak, możesz sam podpisać certyfikat. Ale nie sądzę, że istnieje wbudowany interfejs programowania Java API, aby programowo utworzyć i samodzielnie podpisać certyfikat.

Podobna dyskusja dotyczy tego thread. Zatwierdzone rozwiązanie opisuje przechowywanie klucza prywatnego i klucza publicznego poza magazynem kluczy w chronionym pliku.

można przeczytać więcej na temat architektury Java Cryptography tutaj http://docs.oracle.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html

nadzieję, że to pomaga.

+2

Tylko komentarz. Połączone akceptowane rozwiązanie przechowuje klucze w niezabezpieczonych plikach. – Andy

Powiązane problemy