2016-04-02 22 views
1

KeyStore ile ilgili bazı sorunlarım var. KeyStore'a anahtar ekledim ve oradan alamıyorum. Kodum:KeyStore'dan anahtarı okuyamıyor

 try 
     { 
      KeyGenerator keygen = KeyGenerator.getInstance("AES"); 
      SecureRandom random = new SecureRandom(); 
      keygen.init(128, random); 
      SecretKey key = keygen.generateKey(); 
      KeyStore ks = KeyStore.getInstance("UBER", "BC"); 
      ks.load(null, pass); 
      ks.store(new FileOutputStream(path), pass); 
      ks.setKeyEntry(keyName, key, pass, null); 
      System.out.println(ks.containsAlias(keyName)); 
      key = null; 
      KeyStore ks1 = KeyStore.getInstance("UBER", "BC"); 
      ks1.load(new FileInputStream(path), pass); 
      System.out.println(ks1.containsAlias(keyName)); 
     } 

çıktısı:

true 
false 

anahtar disapper gibi görünüyor ya da ben corectly anahtar deposunu yüklenemiyor. Burada herhangi bir hata görüyor musunuz?

cevap

3

Anahtar deposunu anahtar eklemeden önce kaydediyorsunuz. Bu iki satırı değiştirme:

 ks.store(new FileOutputStream(path), pass); 
     ks.setKeyEntry(keyName, key, pass, null); 

olduklarını Böylece:

 ks.setKeyEntry(keyName, key, pass, null); 
     ks.store(new FileOutputStream(path), pass); 
+0

harika bir cevap, teşekkürler! ÇALIŞIYOR bir cazibe gibi! KeyStore'a anahtar eklemeden önce saklamıyorum. – Michu93