安卓设备上是否有一种安全存储用户数据的方法?

10

我正在编写一个应用程序,用户有时候会通过它进行订单操作。我想给用户提供保存其账单信息(姓名、地址等)的选项,以便在他们想再次下单时可以快速恢复。用户将输入密码以保护数据。

显然,我不能仅将其作为设备上的文件放置,因为任何人都可以获取/查找数据。是否有内置的Android方法来存储受密码保护的安全数据?如果没有,使用Java安全地存储这些数据的好方法是什么?

编辑:要澄清一下,当我说用户将输入密码时,我并不是指我已经想出了一种保护数据的方式。我只是试图传达用户将如何在其端保护数据的方法;现在我正在尝试找出如何保护我的那一端的方法 :)


@Daniel:你也喜欢《Braid》吗? - Martijn Courteaux
@Martijn:非常同意。 :) 不过我应该修复一下我的图标上的 alpha 通道。 - Dan Lew
我用Java写了(覆盖)Braid。它运行得很好! - Martijn Courteaux
3个回答

9
你可以使用包含的 javax.crypto 类来加密任何敏感信息。
你可以查看 Secrets for Android 应用程序的源代码以获取一些示例。

Secrets for Android 是一个应用程序,可安全地存储和管理密码和机密信息在您的Android手机上。它使用强加密和自动注销等技术来帮助确保您的机密信息保持安全(假设您使用了一个很好的主密码!)。上下文敏感提示指导您完成操作,使其易于使用。


8

很明显我不能把这个文件放在设备上,因为任何人都可以获取数据。

没错,但如果允许用户为备份文件设置密码,窃取该文件的人仍需要破解加密。他们可以找出你使用的算法,但无法得知密码。

Android中是否有内置方法来存储受密码保护的安全数据?

Android本身不提供加密文件存储。当你写道“用户将输入密码以保护数据”时,我认为你是在自己加密文件。


0

你会如何存储密钥? - dimitris93

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接