代码之家  ›  专栏  ›  技术社区  ›  Dan Lew

有没有一种在Android设备上安全存储用户数据的方法?

  •  10
  • Dan Lew  · 技术社区  · 15 年前

    我正在编写一个应用程序,用户有时会通过它下订单。我想让用户可以选择保存他们的账单信息(姓名、地址等),以便以后如果他们想下一个订单,可以快速恢复。用户将输入密码以保护数据。

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

    编辑:为了澄清,当我说用户将输入密码时,我并不是说我已经想出了一种保护数据的方法。我只是想传达一种方法,用户可以用它来保护他们终端上的数据;现在我想知道如何遵守我的协议。:)

    3 回复  |  直到 12 年前
        1
  •  9
  •   Steve    15 年前

    你可以用包括的 javax.crypto 类来加密任何敏感信息。

    您可以查看 Secrets for Android 一些例子的应用。

    Android的秘密是一个应用程序 安全存储和管理密码 以及安卓手机上的秘密。它 使用像强加密这样的技术 自动注销以确保 你的秘密保持安全(假设你 使用好的主密码!). 上下文敏感提示引导您 通过它的操作,使它容易 使用。

        2
  •  8
  •   CommonsWare    15 年前

    显然,我不能把它当作 任何人都可以在设备上归档 根目录/查找数据。

    是的,但是如果您允许用户为备份文件定义密码,窃取该文件的人仍然需要破解加密。他们可以找到你使用的算法,但不能找到密码。

    有内置的Android方法吗 存储已锁定的安全数据 有密码吗?

    Android本身不提供加密文件存储。您可以自己加密文件,这是我在编写“用户将输入密码来保护数据”时假定您正在做的事情。

        3
  •  0
  •   Austin B    12 年前

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