如何在Android应用程序中保护密码

时间:2010-03-05 15:46:35

标签: android security sqlite encryption passwords

我的许多用户都要求为我的数据库中的各种数据元素提供密码保护。遗憾的是,我现有的一项功能是将数据库备份到公共场所(SD卡)以实现数据冗余,因此我的数据库不安全。

所以我的问题是双重的。

  1. 如何在android上加密或保护数据库?

  2. 如何以安全,无法访问的方式在设备上存储用户创建的密码。

2 个答案:

答案 0 :(得分:1)

如果您使用的是API版本5或更高版本,则可以与android.accounts.AccountManager集成。

答案 1 :(得分:0)

如果您通过首选项存储数据,则只有您的应用程序可以访问此数据,如果Android系统有效(不是root,等等)。每个应用程序都会有一个自己的用户访问文件系统,因此底层的Linux系统将阻止其他应用程序读取这些数据存储。

我还没有与偏好管理器合作,也许你会在文档中找到如何使用它的答案。

如果您需要将密码登录到外部Web应用程序并且不能简单地存储密码的哈希值,则可以使用特殊机制来进行Google身份验证。您使用用户名密码登录Web应用程序,然后Web应用程序会向您的设备发送安全令牌。此令牌可以保存,并且可以从此设备登录两周。 这只有在您控制正在使用的Web应用程序的某些部分时才有效。