2016-04-02 7 views
1

KeyStoreにいくつか問題があります。 KeyStoreにキーを追加してそこから取得できません。 マイコード:KeyStoreからキーを読み取ることができません

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

出力は次のようになります。

true 
false 

は、キーdisapperように思えるか、私はcorectlyキーストアをロードすることはできません。ここにバグがありますか?

答えて

3

キーストアを保存する前にキーストアを保存しています。彼らはされるように

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

:この2行を入れ替え

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

素晴らしい答え、ありがとう!魅力的な作品! KeyStoreにキーを追加する前に私がストアを見たことがありません。 – Michu93

関連する問題