Android密钥库:不支持的密钥算法:AES/CBC/PKCS5P
我正在尝试使用以下代码将AES密钥存储在Android密钥库中:Android密钥库:不支持的密钥算法:AES/CBC/PKCS5P,android,encryption,aes,keystore,Android,Encryption,Aes,Keystore,我正在尝试使用以下代码将AES密钥存储在Android密钥库中: SecretKey AESkey = new SecretKeySpec( byteKey, 0, byteKey.length, "AES/CBC/PKCS5Padding"); if (ks == null) { ks = KeyStore.getInstance("AndroidKeyStore"); ks.load(null); } ks.deleteEntry("aes_key"); ks.setE
SecretKey AESkey = new SecretKeySpec(
byteKey, 0, byteKey.length, "AES/CBC/PKCS5Padding");
if (ks == null)
{
ks = KeyStore.getInstance("AndroidKeyStore");
ks.load(null);
}
ks.deleteEntry("aes_key");
ks.setEntry("aes_key",
new KeyStore.SecretKeyEntry(AESkey),
new KeyProtection.Builder(KeyProperties.PURPOSE_ENCRYPT |
KeyProperties.PURPOSE_DECRYPT)
.setBlockModes(KeyProperties.BLOCK_MODE_CBC)
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)
.build());
带有“setEntry(…)”的行失败,原因如下:
java.security.KeyStoreException: java.lang.IllegalArgumentException: Unsupported secret key algorithm: AES/CBC/PKCS5Padding
如何在Android.KeyStore中存储密钥 CBC和PKCS5P不是密钥的一部分,但密钥大小是 在给出错误消息时,只需使用“AES”即可进行猜测
文档充其量也很薄,我能找到的最接近的是
SecretKeyFactory算法
:“AES”构造用于AES算法的密钥。请参阅:.CBC
和PKCS5Padding
不是密钥的一部分,但密钥大小是。@zaph您想说我必须更改行new SecretKeySpec(byteKey,0,byteKey.length,“AES/CBC/PKCS5Padding”);到新的SecretKeySpec(byteKey,0,byteKey.length,“AES”)?
SecretKey AESkey = new SecretKeySpec(byteKey, 0, byteKey.length, "AES");