在Android应用程序中存储文件的最佳方法是什么?

时间:2014-08-22 17:48:10

标签: android encryption

我正在为我的最后一年项目编写一个应用程序,所以对于概念验证更是如此,因此它不一定是世界上最好的应用程序。

它就像一个文件柜应用程序,您可以添加和删除应用程序中的文件,当它们存储时,它们将被加密。将有某种登录供用户输入并在DB上进行验证。 我仍然是android的新手所以我还有一段路可走,但我到了那里!

我在考虑将文件(可能是doc,pdf,jpg,视频文件等)添加到应用程序中,它将存储在内部存储中(从我所看到的它似乎是最好的地方)存储与应用程序相关的内容),并将名称和文件类型的记录添加到数据库以及加密的文件名。因此,当用户查看应用程序时,他们将看到图片的缩略图和文件名,有点像“我的文件”应用程序显示文件夹中的文件。

我的问题是最好不要将文件直接存储到数据库中,而只是将数据库用作文件详细信息的参考,如果是这样的话,怎么办呢?

此外,我认为AES 128位加密方法最适合这种情况。我尝试了几个加密示例,但只能用txt文件做到这一点,当我用jpg尝试它时应用程序只是坐在那里什么也没做。它显示了加密和解密的jpg,但这是不可见的。

是否有人能够建议一种加密任何适合我的应用程序的文件类型的好方法? 任何帮助将不胜感激!

干杯, 欧文

1 个答案:

答案 0 :(得分:0)

如果您想要正确执行此操作,请参阅以下提示:

  1. 不要将文件存储在数据库中,除非您事先知道它们会变得非常糟糕。将它们存储在其他地方,并在数据库中引用它们。
  2. 对于他们来说,最小的地方是应用程序的私有文件空间中的内部存储空间。但是,如果您希望能够存储加密的任意数据,那么您需要点击外部存储空间。
  3. 不要存储解密密钥!
  4. 理想情况下,您应该找到一种在解密时不在任何地方写入文件的方法。但是,如果你需要在之后的另一个应用程序中打开它,那可能是不可能的。如果您将加密文件写入外部存储,您至少应该将解密版本写入内部存储,其中有一些操作系统保护,以防其他应用程序读取它。如果您将解密的文件写入外部存储器,任何东西都可以从中获取。
  5. 使用128位密钥的AES会没问题。