У меня возникла проблема с расшифровкой файла с использованием расшифровки с открытым ключом RSA. Мой процесс состоит в том, чтобы получить файл xml, зашифровать содержимое и записать его обратно в тот же файл. Другая функция расшифровывает содержимое. Мой исходный код:
public void decryptFile(String fileName,PrivateKey privateKey) throws Exception {
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.DECRYPT_MODE, privateKey);
FileInputStream fis = new FileInputStream(fileName);
File file=new File("decryptedfile.xml");
if(file.exists()) {
file.delete();
}
FileOutputStream fos = new FileOutputStream("decryptedfile.xml");
CipherInputStream cis = new CipherInputStream(fis, cipher);
int i;
byte[] block = new byte[32];
//System.out.println("Read : "+cis.read(block));
while ((i = cis.read(block)) != -1) {
System.out.println(String.valueOf(i));
fos.write(block, 0, i);
}
fos.close();
}
Я просто передаю в функцию имя зашифрованного файла и соответствующее значение закрытого ключа. Однако cis.read(block)
возвращает -1 при первой попытке. Кто-нибудь может подсказать, как расшифровать зашифрованный файл?