KeyStore API AES 密钥生成 NoSuchAlgorithmException
KeyStore API AES Key Generation NoSuchAlgorithmException
我正在使用下面的代码生成 AES 密钥并将其存储到 Android 密钥库中:
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 23
和 compileSdkVersion 25
构建的,并且是 运行 在带有 Android 6.0.1 的 Blackberry Priv 上,所以根据文档,应该有没有任何例外,因为 AES 算法需要 API 级别 23 或更高级别。
感谢任何帮助。
KeyPairGenerator
适用于使用密钥对(私钥和 public 密钥)的算法,例如 RSA 或 DSA.
对于 AES 中的对称密钥,使用 KeyGenerator
class.
我正在使用下面的代码生成 AES 密钥并将其存储到 Android 密钥库中:
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 23
和 compileSdkVersion 25
构建的,并且是 运行 在带有 Android 6.0.1 的 Blackberry Priv 上,所以根据文档,应该有没有任何例外,因为 AES 算法需要 API 级别 23 或更高级别。
感谢任何帮助。
KeyPairGenerator
适用于使用密钥对(私钥和 public 密钥)的算法,例如 RSA 或 DSA.
对于 AES 中的对称密钥,使用 KeyGenerator
class.