gpt4 book ai didi

android - 如何在 Android 上保护数据库(加密)密码?

转载 作者:太空狗 更新时间:2023-10-29 16:06:54 24 4
gpt4 key购买 nike

我有一个数据库,其中包含只能由我的应用程序访问的私有(private)信息。我在 Assets 文件夹中添加了我的数据库文件,该文件夹在应用程序第一次运行时被复制到应用程序数据库目录,但是“ Assets ”目录和“数据”目录(在 Root设备上)可以被任何其他应用程序访问所以我决定加密数据库。 Android 默认的 SQLite 数据库不提供数据加密,所以我决定使用 SQLCipher for android http://sqlcipher.net/sqlcipher-for-android/ .

现在我已经成功地加密了数据库,我可以使用特定的密码访问它。但问题仍然存在......我应该在哪里存储这个密码?这样它只能被我的应用程序访问。

  1. 不能对它进行硬编码,因为它在反编译后仍然可以访问,即使它被混淆了。
  2. 也不能存储在文件系统中(assets/raw)
  3. 不能要求用户输入它,因为用户可能是黑客

它是完全没有服务器交互的独立应用

最佳答案

不能要求用户输入它,因为用户可能是黑客 那么您就无法安全地存储它。出于您已经确定的相同原因,特别是您的代码可以被反编译,您存储它的任何可访问的地方都可以通过反编译找出并因此被具有正确访问权限的任何代码检索。

用户提供的东西存储在用户存储它的任何地方——大概是在他或她的头脑中。这不是软件可以访问的内容,因此非常适合降低恶意软件攻击的风险。如果输入的密码有效,您无法知道用户是否被授权,但是您可以定义诸如最小 key 长度、最大输入尝试次数(在引入延迟或其他锁定之前)等策略.

关于android - 如何在 Android 上保护数据库(加密)密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11960326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com