加密和解密的问题

时间:2013-12-05 19:34:22

标签: java encryption

我正在尝试用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");

加密有效,但解密后解密文件为空。 有人能解释我的问题是什么以及如何解决?

谢谢!

1 个答案:

答案 0 :(得分:2)

您不应同时使用FileInputStreamFileOutputStream阅读和覆盖同一文件。通常情况下,你会很幸运,但行为将根据底层系统而有所不同,这并不好。而是写入临时文件,然后将临时文件移动到原始文件的位置。