【问题标题】:Where can I safe store db password on Android Application?我可以在哪里安全地在 Android 应用程序上存储数据库密码?
【发布时间】:2013-08-11 14:52:08
【问题描述】:

我有一个带有“sqlcipher library”的加密数据库,但现在我不知道我可以在哪里以正确的方式在应用程序内存储数据库密码。 我认为 PRIVATE_MODE 中的 SharedPreferences 是存储它的好地方;但我不确定。 有什么建议吗? 谢谢。

【问题讨论】:

  • 您不能对用户隐藏用户数据(手机上的数据就是他们的数据)。您可以尝试通过几种方式混淆 sqlcipher 密码,但最终代码可以被反编译,任何人都可以获得密码。设备上的加密数据库只是有助于稍微阻止随意的旁观者,它不会阻止坚定的用户(或攻击者)。
  • 谢谢,所以如果我有一个根设备.. 没有可能以安全的方式存储密码。
  • @Paolo 没错。

标签: android database sharedpreferences password-protection sqlcipher


【解决方案1】:

即使您将密码隐藏在应用程序本身中,它仍然可以被反编译并被发现。在具有 root 的设备上没有安全的地方。您最好的选择是将数据库放在网络服务器上并从服务器检索数据。这是保证数据库对用户安全的唯一方法(如果服务器已设置且安全)。

【讨论】:

  • 您好,谢谢。我已经在网络服务器上有一个用于登录等的数据库,我的目的只是以安全的方式保存敏感的用户数据。但我知道我对安全性有点夸大了:P
【解决方案2】:

我不知道在哪里可以以正确的方式存储数据库密码

“正确的方法”是将密码放在用户的脑海中,因为在 Android 上使用 SQLCipher 的唯一原因是允许 用户 保护 用户的 数据。

您似乎正在尝试将 SQLCipher for Android 用作 DRM 机制,但该机制不起作用。鉴于有足够的兴趣,您无法在“应用程序内部”存储用户无法访问的密码。

【讨论】:

    【解决方案3】:

    取决于你想变得多偏执。如果设备没有植根,这将起作用。如果它被植根,那么设备上就没有安全的地方了。

    【讨论】:

      猜你喜欢
      • 2012-06-14
      • 1970-01-01
      • 2019-11-13
      • 2020-08-26
      • 2020-08-22
      • 1970-01-01
      • 2011-06-21
      • 2013-09-17
      • 1970-01-01
      相关资源
      最近更新 更多