2017-05-08 178 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