繁体   English   中英

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

[英]What is the best way to store a file within an Android app?

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

就像文件更衣室应用程序一样,您可以在应用程序中添加和删除文件,并且文件存储时将被加密。 将有某种登录名供用户输入并在数据库上进行验证。 我仍然是android的新手,所以我还有一段路要走,但是我要到达那里!

我在想将文件(可能是doc,pdf,jpg,视频文件等)添加到应用程序时,它将存储在内部存储器中(据我了解,这似乎是存储应用程序的最佳位置)相关内容)以及名称和文件类型的记录以及加密的文件名将被添加到数据库中。 因此,当用户查看应用程序时,他们将看到图片的缩略图和文件名,就像“我的文件”应用程序显示文件夹中的文件一样。

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

我还认为AES 128位加密方法最适合于此。 我已经尝试了几个加密示例,但是只能使用txt文件来完成此操作,当我使用jpg对其进行尝试时,该应用程序就坐在那儿,什么也没做。 它显示了加密和解密的jpg,但是看不到。

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

干杯,欧文

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

  1. 不要将文件存储在数据库中,除非您事先知道它们将变得十分棘手。 将它们存储在其他位置,并在数据库中引用它们。
  2. 如果它们很小,最好的地方是应用程序专用文件空间中的内部存储。 但是,如果您希望能够存储加密的任意数据,则需要使用外部存储。
  3. 不要存储解密密钥!
  4. 理想情况下,您应该找到一种在解密文件时不将文件写入任何地方的方法。 但是,如果以后需要在另一个应用程序中打开它,则可能无法实现。 如果将加密的文件写入外部存储,则至少应将解密的版本写入内部存储,其中有一些操作系统可以防止其他应用读取该文件。 如果将解密后的文件写入外部存储,则任何东西都可以得到。
  5. 带有128位密钥的AES可以满足您的要求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM