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

时间:2010-04-09 13:04:36

标签: java android security

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

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

编辑:澄清一下,当我说用户将输入密码时,我并不是说我已经找到了保护数据的方法。我只是想传达用户将数据保存到最终的方法;现在我想弄清楚如何保持我的交易结束。 :)

3 个答案:

答案 0 :(得分:9)

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

您可以查看Secrets for Android应用程序的源代码以获取一些示例。

  

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

答案 1 :(得分:8)

  

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

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

  

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

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

答案 2 :(得分:0)

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