我正在编写一个应用程序,其中用户有时会通过它进行订单。我想让用户选择保存他们的账单信息(姓名,地址等),以便以后如果他们想要再次订购,可以快速恢复。用户将输入密码以保护数据。
显然,我不能把它作为文件放在设备上,因为任何人都可以根/找到数据。是否有内置的Android方法来存储用密码锁定的安全数据?如果没有,开始使用Java安全存储这些数据的好地方是什么?
编辑:澄清一下,当我说用户将输入密码时,我并不是说我已经找到了保护数据的方法。我只是想传达用户将数据保存到最终的方法;现在我想弄清楚如何保持我的交易结束。 :)
答案 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二进制文件以及一些使用示例。