有没有办法在Android设备上安全地存储用户数据?

我正在编写一个应用程序,其中用户有时会通过它进行订单。 我想让用户select保存他们的账单信息(姓名,地址等),以便以后可以快速恢复,如果他们想要另一个订单。 用户将input一个密码来保护数据。

显然,我不能把这个文件作为一个文件放在设备上,因为任何人都可以find/查找数据。 是否有一个内置的Android方法来存储用密码locking的安全数据? 如果没有,那么开始使用Java安全地存储这些数据的好地方是什么?

编辑:为了澄清,当我说用户将input密码,我不是说我已经想出了一种方法来保护数据呢。 我只是试图传达用户将保护数据的方法; 现在我想弄清楚如何保持我的讨价还价。 🙂

  • 如何在跨应用程序发送意图数据时保护意向数据
  • 确保Web服务的安全,以便只能由特定的Android应用程序调用
  • 如何在运行时validation已安装的应用程序以防止钓鱼攻击?
  • 如何在本地最好地保存InApp购买状态?
  • 如何检查类是否存在于包中?
  • NDK应用程序签名检查
  • 将salt与encryption的文件中断安全性一起存储吗?
  • 在哪里可以find用户安装证书的Android 4.0及以上
  • 您可以使用包含的javax.crypto类来encryption任何敏感信息。

    一些例子可以查看Android应用程序的秘密的源代码。

    Android的秘密是一个应用程序安全地存储和pipe理您的Android手机上的密码和秘密。 它使用强encryption和自动注销等技术来帮助确保你的秘密保持安全(假设你使用了一个好的主密码!)。 上下文相关的提示将指导您完成操作,使其易于使用。

    显然,我不能把这个文件作为一个文件放在设备上,因为任何人都可以find/查找数据。

    不错,但是如果你允许用户为备份文件定义一个密码,那么偷取这个文件的人仍然需要破解encryption。 他们可以找出你正在使用的algorithm,但不是密码。

    是否有一个内置的Android方法来存储用密码locking的安全数据?

    Android本身不提供encryption文件存储。 你可以自己encryption文件,这是我在你写下“用户将input密码以保护数据”时所假设的。

    看看Android的SQLCipher。 您可以将该信息存储在数据库中,然后使用256位AES对其进行encryption。 http://sqlcipher.net/sqlcipher-for-android/主要项目是propriatery,但你可以通过他们的GitHub免费获得Android二进制文件,以及一些使用示例。