我正在尝试用 Java 编写加密文件的代码。我使用了该网站的示例: http://www.avajava.com/tutorials/lessons/how-do-i-encrypt-and-decrypt-files-using-des.html
一切正常,但我需要用加密文件覆盖原始文件的代码。我只改变了这一点:
FileInputStream fis = new FileInputStream("original.txt");
FileOutputStream fos = new FileOutputStream("original.txt");
encrypt(key, fis, fos);
FileInputStream fis2 = new FileInputStream("original.txt");
FileOutputStream fos2 = new FileOutputStream("original.txt");
加密有效,但解密后解密文件为空。 有人可以向我解释一下问题是什么以及如何解决吗?
谢谢!
最佳答案
您不应使用 FileInputStream
和 FileOutputStream
同时读取和覆盖同一文件。通常,您会很幸运,但行为会根据底层系统的不同而有所不同,这并不好。相反,写入临时文件,然后将临时文件移动到原始文件的位置。
关于java - 加密和解密的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20408938/