java - 加密和解密的问题

标签 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");

加密有效,但解密后解密文件为空。 有人可以向我解释一下问题是什么以及如何解决吗?

谢谢!

最佳答案

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

关于java - 加密和解密的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20408938/

相关文章:

Java - 使用 while(in.hasNext()) 扫描器

asp.net - 如何使用 aspnet_regiis.exe 正确加密我的 Web.config?

php - PHP 服务器和 iOS 上的 AES Rijndael 有时会生成不同的密码

java - 如何使用jsf获取Spring Security中当前登录的用户名?

java - 计算两个瞬间之间的天数、小时数和分钟数

java - Intellij Idea 包装实时模板

javascript - Node 服务器上的 2 个证书

encryption - 为什么使用 JSON Web Tokens (JWT) 而不是普通加密

java - 将数组元素移动一定量?

java程序无法读取字符串