【问题标题】:Problems with encrypt and decrypt加密和解密的问题
【发布时间】:2013-12-06 03:38:03
【问题描述】:

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

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

谢谢!

【问题讨论】:

  • 你在哪里解密?
  • 首先,这是一个可怕的例子。他们做错了几件事。
  • 如果你能推荐任何java加密的好例子,我将不胜感激
  • 您不应该直接使用密码作为密钥。 This post 展示了如何从密码创建正确的密钥。它使用 AES-256,但 AES-128 已经足够好了。 DES 对任何事情都不够好。您不应该使用 ECB 模式。使用CBC模式,并将IV存储在加密文件的开头。我也会尝试提供一个例子。提供完整性保护的模式会更好,但是小步骤......

标签: java encryption


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-09-10
    • 1970-01-01
    • 2011-04-11
    • 2013-03-08
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    相关资源
    最近更新 更多