【发布时间】:2018-03-24 12:21:29
【问题描述】:
我有一个名为 docFolder 的文件夹,位于设备间隔内存的 下载目录 内。该文件夹包含许多不同格式的文件(html、png、jpg 等...)。
如何轻松以编程方式加密 docFolder,使用户无法打开该文件夹。我还需要以编程方式解密 docFolder,以便可以在我的代码中使用这些文件。
请帮忙。
【问题讨论】:
标签: android encryption directory
我有一个名为 docFolder 的文件夹,位于设备间隔内存的 下载目录 内。该文件夹包含许多不同格式的文件(html、png、jpg 等...)。
如何轻松以编程方式加密 docFolder,使用户无法打开该文件夹。我还需要以编程方式解密 docFolder,以便可以在我的代码中使用这些文件。
请帮忙。
【问题讨论】:
标签: android encryption directory
之前已经为您的用例做过研究,我可以帮助您了解我的结果和发现。
您可以使用对称算法进行加密和解密。这些对称加密算法相对来说速度更快,并且消耗的计算资源更少。
您可以阅读对称密码系统here。
您会发现每种算法都有很多 Java 代码。
您需要确保用于对称加密的密钥未存储在本地,因为用户可以反编译 APK 并访问代码。为此,您可以从 Firebase 等公共云数据库服务中检索每个用户的密钥。
所以不用加密文件夹,您可以加密您的重要文档并将它们存储在应用程序的专用路径中。
一般情况下,其他常规应用无法访问您应用的专用路径。 Android 不允许这样做。但是用户可以使用任何文件浏览器浏览它们。
阅读 Android here 中的数据和文件存储,并为您的用例选择最合适的方法。
希望这有帮助。
【讨论】:
java.crypto 包 - docs.oracle.com/javase/7/docs/api/javax/crypto/…
您不能加密文件夹,但您可以加密文件
看看
http://www.codejava.net/coding/file-encryption-and-decryption-simple-example
请记住,加密和解密会带来电池使用和时间的成本(取决于您的文件大小,您甚至可能会滞后于应用程序)。
您应该只加密非常重要的敏感数据
如果您不希望用户直接访问您的文件,可以将它们存储在 sqlite
【讨论】: