2010-04-09 75 views
10

我正在编写一个应用程序,其中用户有时会通过它发出命令。我想让用户选择保存他们的账单信息(姓名,地址等),以便以后可以快速恢复,如果他们想再次下单。用户将输入密码以保护数据。有没有办法在Android设备上安全地存储用户数据?

很显然,我不能只将它作为设备上的文件,因为任何人都可以根/发现数据。是否有内置Android方法来存储使用密码锁定的安全数据?如果没有,那么开始使用Java安全地存储这些数据的好地方是什么?

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

+0

@Daniel:还是Braid的粉丝? – 2010-04-09 14:59:48

+0

@Martijn:非常非常。 :)我应该修正我的图标上的alpha通道。 – 2010-04-09 15:11:36

+0

我用Java编写了(覆盖)Braid。它工作很好! – 2010-04-09 15:16:49

回答

9

您可以使用包含的javax.crypto类来加密任何敏感信息。

对于某些示例,您可以查看Secrets for Android应用程序的源代码。

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

8

很明显,我不能只是把这个作为设备上的文件 ,因为任何人都可以 根/查找数据。

确实如此,但如果您允许用户为备份文件定义密码,那么盗取该文件的某人仍然需要破解加密。他们可以找出你正在使用的算法,但不是密码。

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

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

0

查看SQLCipher for Android。您可以将该信息存储在数据库中,然后使用256位AES对其进行加密。​​主项目是propriatery,但您可以通过their GitHub,免费获得Android二进制文件以及一些使用示例。

+0

你将如何存储密钥? – dimitris93 2016-10-26 15:56:14

相关问题