2016-04-02 17 views
1

Ich habe einige Probleme mit KeyStore. Ich habe Schlüssel zu KeyStore hinzugefügt und kann es nicht von dort bekommen. Mein Code:Kann den Schlüssel aus KeyStore nicht lesen

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

der Ausgang ist:

true 
false 

scheint wie Schlüssel disapper oder ich kann den Schlüsselspeicher corectly nicht geladen werden. Siehst du hier irgendwelche Fehler?

Antwort

3

Sie speichern Ihren Schlüsselspeicher, bevor Sie ihm Schlüssel hinzufügen. Tauschen Sie diese beiden Zeilen:

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

Damit sind sie:

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

große Antwort, danke! Klappt wunderbar! Ich habe nicht gesehen, dass ich vor dem Hinzufügen von Schlüssel zu KeyStore gespeichert habe. – Michu93

Verwandte Themen