【问题标题】:Encrypting a folder for an Android app?为 Android 应用加密文件夹?
【发布时间】:2012-02-29 12:55:15
【问题描述】:

我正在开发的应用程序从 sdcard 获取所有文件,但这些文件非常重要,应用程序应该维护一个安全问题。那么有没有一种方法可以加密或锁定包含该文件的文件夹或目录有钥匙,只能由我的应用程序使用? 请帮助我是新手并卡在这一点上。

【问题讨论】:

  • 也许是让文件夹“不可见”(隐藏文件夹)的想法?不知道这样够不够好?
  • 是的,那太好了,你知道这样的事吗??
  • 说实话不,不是真的,但看看这两个帖子:link1link2
  • 这可以通过使用“.”来实现。在文件夹名称的开头。但是文件夹没有安全性
  • 好吧,如果他们使用相同的文件夹。那么它不是,但在我的应用程序中,我使用自定义名称创建了一个新的自定义文件夹。

标签: java android security file encryption


【解决方案1】:

在 Android 上,存储在 SD 卡上的任何内容都不受权限保护,任何有权触摸 SD 卡的应用程序(以及任何可以将卡拉出并在其他地方读取的任何人/任何人)都可以访问。基本上,您需要假设如果您将资源放在那里,任何人都可以访问它们。所以,你是对的,你想加密这些资源,这样即使有这种访问权限,也没有人可以访问它们。

Android 包含对众所周知的加密技术的大量支持。在这种情况下,您需要使用对称加密。当前的最佳实践是使用带有 256 位密钥的 AES,所有这些都在 Android 类库中本机支持。在线开发人员文档中有大量关于如何执行此操作的资源,并且在Application Security for the Android Platform 中提供了您需要考虑的所有问题的完整概要以及整个过程的代码示例(免责声明:我是这本书的作者)。

您确实需要一个密钥来加密此数据,并且您需要对该密钥保密(任何知道它的人都可以解密数据)。您有两个选择...(1) 每次使用应用程序时都要求用户输入密码,然后从该密码中派生密钥,或者 (2) 将密码存储在您的应用程序中。 (2) 很危险,因为 Android 应用程序很容易被逆向工程,攻击者可以简单地查看您的应用程序并找到密钥。 (1) 是首选,因为没有存储密钥供攻击者恢复……权衡是您的用户需要输入密码才能使用您的应用程序。您在这里应该做的是风险分析的功能......这些数据有多重要?您是否需要以强有力的方式保护它,或者您是否保护它只是为了让攻击者更难处理?根据您的用例和数据的敏感性/风险,只有您可以回答这个问题。

【讨论】:

    【解决方案2】:

    看看这些资源:

    http://source.android.com/tech/encryption/android_crypto_implementation.html

    http://developer.android.com/reference/javax/crypto/package-summary.html

    您应该知道,您当然不应该以明文形式存储加密数据的密钥,而是使用用户可以选择的密码或类似的密码对其本身进行加密。

    【讨论】:

      【解决方案3】:

      这是创建一个新文件夹的方法:

      String SaveFolder = "/Save";
              String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
              File mySaveFolder = new File(extStorageDirectory + SaveFolder);
              mySaveFolder.mkdir();
      

      public void onCreate 中获得此代码 现在它会创建一个名为“Save”的文件夹。

      编辑: 我看着没有办法设置密码或其他东西。 虽然我在这里阅读了http://developer.android.com/guide/topics/data/data-storage.html#filesInternal,但可以将文件保存在用户无法访问的内部存储器中,但我从未使用过,所以我无法帮助您。

      【讨论】:

        猜你喜欢
        • 2021-09-30
        • 2012-11-07
        • 1970-01-01
        • 1970-01-01
        • 2021-10-20
        • 1970-01-01
        • 2014-09-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多