我生成并将RSA密钥存储到android keyStore中, 然后我生成了一个AES密钥并使用RSA公钥对其进行加密,当我想解密加密的AES-key时出现此错误:java.security.InvalidKeyException:需要RSA私钥或公钥
KeyStore.PrivateKeyEntry privateKeyEntry = (KeyStore.PrivateKeyEntry) keyStore.getEntry(KEY_ALIAS, null);
Cipher output = Cipher.getInstance(RSA_MODE, "AndroidOpenSSL");
output.init(Cipher.DECRYPT_MODE, privateKeyEntry.getPrivateKey());
在log privateKeyEntry.getCertificate()之后.getPublicKey() 和privateKeyEntry.getPrivateKey()
我看到了mModulas的钥匙是平等的,有人对此有任何想法吗?
答案 0 :(得分:1)
您正在使用由" AndroidKeyStore"管理的密钥。键。尝试删除" AndroidOpenSSL"这里
Cipher output = Cipher.getInstance(RSA_MODE, "AndroidOpenSSL");
在记录
privateKeyEntry.getCertificate().getPublicKey()
和privateKeyEntry.getPrivateKey()
之后,我看到密钥mModulas是等于的,有人对此有任何想法吗?
私钥和公钥的公共模数相同。这是正常的