【发布时间】:2014-05-15 06:41:35
【问题描述】:
我正在开发使用 RSA 算法进行加密和解密的 Android 应用程序。 我的意图是解密一个由服务器使用 RSACertificate.der 和 RSAPrivatekey.p12 文件加密的文件。
现在我有一个 Example.encriptedfile、RSACertificat.der 和 RSAPrivatekey.p12 文件 我想在 JAVA 中使用上述密钥解密上述 example.encrypted 文件
获取私钥的实现 而使用 Cipher 的解密代码是
文件是example.encrypted文件。
byte[] descryptedData = null;
try {
byte[] data = new byte[(int) file.length()];
new FileInputStream(file).read(data)
KeyStore keystore = KeyStore.getInstance("PKCS12");
keystore.load(con.getAssets().open("rsaPrivate.p12"), "password".toCharArray());
pk = (PrivateKey)keystore.getKey("1", "password".toCharArray());
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, pk );
descryptedData = cipher.doFinal(data);
} catch (Exception e) {
e.printStackTrace();
}
return new String(descryptedData);
闲置代码的异常是
java.security.InvalidKeyException: unknown key type passed to RSA
at com.android.org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi.engineInit(CipherSpi.java:277)
at com.android.org.bouncycastle.jcajce.provider.asymmetric.rsa.CipherSpi.engineInit(CipherSpi.java:381)
at javax.crypto.Cipher.init(Cipher.java:519)
at javax.crypto.Cipher.init(Cipher.java:479)
那么任何人都可以提供实施此的建议和解决方案
提前致谢。
但是一样
【问题讨论】:
标签: java android encryption private-key