2010-06-12 14 views

cevap

21

Depolama:

KeyStore ks = KeyStore.getInstance("JKS"); 
InputStream readStream = new FileInputStream(filePathToStore); 
ks.load(readStream, keystorePasswordCharArray); 
Key key = ks.getKey("keyAlias", passwordForKeyCharArray); 
readStream.close(); 

javadocs

EDIT Oku:

Eğer PrivateKey

Yükleme geçen sürece

KeyStore ks = KeyStore.getInstance("JKS"); 
ks.setKeyEntry("keyAlias", key, passwordForKeyCharArray, certChain); 
OutputStream writeStream = new FileOutputStream(filePathToStore); 
ks.store(writeStream, keystorePasswordCharArray); 
writeStream.close(); 

Not thet certChain, null olabilir

Bir SecretKey'i saklıyorsanız veya SunJCE sağlayıcısının herhangi bir bölümünü (Java Cryptography Extension) kullanıyorsanız, KeyStore türünüzü JCEKS olarak ayarlamanız gerekeceğini unutmayın.

KeyStore ks = KeyStore.getInstance("JCEKS"); 

sen benim SSL/TLS uygulama (sslserversocketfactory) ile bu nasıl kullanabilirim açıklarsanız ben bunu bir CA sertifikası

3

ben yapmadım bir durum vardı yolunu vermek gerekir memnun olurum Anahtar takma ismini bilmiyorum, ama anahtar deposunda tek bir anahtarın olduğunu biliyordum. I (yukarıda gösterildiği gibi deposunu yüklemeden sonra) anahtarını yüklemek için aşağıdaki kodu kullanılmıştır:

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(); 

I özel anahtarı, ortak anahtar ve bunların nasıl kullanılacağı yük ile ilgili bilgileri içeren bir post on my blog ekledik.

İlgili konular