解密加密文件内容?

Bat*_*rai 6 java encryption cryptography public-key-encryption

我在使用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();
}
Run Code Online (Sandbox Code Playgroud)

我只是将加密文件的名称和相应的私钥值传入函数.但是cis.read(block)第一次尝试时返回-1.任何人都可以建议我如何解密加密文件?

imi*_*ers 2

您的文件几乎肯定没有经过 RSA 加密。它可能在随机对称密钥下使用 AES 进行加密,然后使用 RSA 对该密钥进行加密。

您假设有人实际上仅使用 RSA 加密了整个文件。假设实现甚至允许您执行此操作(我见过在尝试执行此操作时抛出异常的实现),那么执行任何有用的操作都太慢了。