2017-05-08 181 views
0

我用下面的代碼生成和AES密鑰存儲到了Android密鑰庫:密鑰庫API AES密鑰生成拋出:NoSuchAlgorithmException

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //redundant 
      try { 
       // generate some AES key for encryption 
       KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore"); 
       keyPairGenerator.initialize(new KeyGenParameterSpec.Builder(
         "VideoEncryptionKey", 
         KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT) 
         .setBlockModes(KeyProperties.BLOCK_MODE_GCM) 
         .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE) 
         .setRandomizedEncryptionRequired(false) 
         .build()); 
       keyPairGenerator.generateKeyPair(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 

執行時,代碼失敗java.security.NoSuchAlgorithmException: KeyPairGenerator AES implementation not found

該代碼是建立與targetSdkVersion 23compileSdkVersion 25和黑莓PRIV運行與Android 6.0.1所以根據該文檔,因爲AES算法需要API級別23或更高不應該有任何這樣的例外。

任何幫助表示讚賞。

回答

0

KeyPairGenerator是算法,使用密鑰對(公鑰和私鑰)像RSADSA

對於AES中的對稱密鑰,請使用KeyGenerator類。

+0

謝謝,如此粗心的我錯過了文檔。 – DarthPaghius