密钥库API AES密钥生成抛出:NoSuchAlgorithmException
问题描述:
我用下面的代码生成和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 23
和compileSdkVersion 25
和黑莓PRIV运行与Android 6.0.1所以根据该文档,因为AES算法需要API级别23或更高不应该有任何这样的例外。
任何帮助表示赞赏。
答
的KeyPairGenerator
是算法,使用密钥对(公钥和私钥)像RSA或DSA。
对于AES中的对称密钥,请使用KeyGenerator
类。
谢谢,如此粗心的我错过了文档。 – DarthPaghius