【问题标题】:Encrypt folder and open with java application加密文件夹并使用 java 应用程序打开
【发布时间】:2018-08-27 12:08:36
【问题描述】:

我的 java 应用程序将数据存储在用户主目录的文件夹中。 如何加密该文件夹但使用应用程序访问加密文件夹?

我尝试使用 java (Java Cryptography Extension (JCE)) 加密该文件夹,但如果不解密就无法从我的应用程序中访问该文件夹。

我需要用户不能访问这个文件夹,只能在我的应用程序中。

【问题讨论】:

  • 如果不解密,您将无法访问加密文件夹。您可能希望在一个临时文件夹中执行此操作,以便在您的应用程序中使用未加密的副本,而使原始文件夹保持加密状态。
  • 我不确定我是否理解正确,但是如果您想要加密文件,只能由您的应用程序读取 - 那么您所需要的只是一种可以加密数据的方法,一种再次解密它的方法和一些密钥(你想保存的地方)。然后,您的应用程序所要做的就是在将数据写入文件之前对其进行加密,并在需要时再次对其进行解密。密钥和有关加密的所有其他内容都应该以您的用户看不到的方式处理。此外,您可以隐藏系统中的文件(在 unix 中,在文件名前加上 .)并给它们“加密”的名称。
  • 为什么不能加密文件本身而不是“文件夹”?如果文件名泄露了他们存储的内容(尽管是加密的),你甚至可以混淆文件名,如果你也关心的话。

标签: java swing io jfilechooser jce


【解决方案1】:

注意:这将是一个非正统的答案,可能不是 OP 正在寻找的。​​em>

一种可能的解决方案是压缩文件夹中的文件,然后加密压缩文件。 读取它的内容当然会更慢,但使用 Java 的 NIO Zip 文件系统提供程序是完全可行的。您需要将其解密,使其恢复为 zip 格式。

https://docs.oracle.com/javase/8/docs/technotes/guides/io/fsp/zipfilesystemprovider.html

不确定应用程序更改文件的频率,以及更新 zip 文件并根据需要重新加密它的可行性。

【讨论】:

    猜你喜欢
    • 2014-08-13
    • 2016-08-03
    • 2022-01-09
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多