Saq*_*qib 2 database security android password-protection
我有一个包含私人信息的数据库,只能由我的应用程序访问.我在assets文件夹中添加了我的数据库文件,该文件夹在应用程序第一次运行时被复制到应用程序数据库目录,但是"assets"目录和"data"目录(在root设备上)可以被任何其他应用程序访问所以我决定加密数据库.Android默认的SQLite数据库不提供数据加密,所以我决定使用SQLCipher for android http://sqlcipher.net/sqlcipher-for-android/.
现在我已成功加密数据库,我可以使用特定密码访问它.但问题仍然存在......我应该在哪里存储这个密码?这样它只能被我的应用程序访问.
它是独立的应用程序,根本没有服务器交互
Can't ask the user to enter it as the user could be a hacker然后你无法安全地存储它.由于您已经确定的相同原因,特别是您的代码可以被反编译,您存储的任何可访问的地方都可以通过反编译找出,因此可以通过任何具有正确访问权限的代码进行检索.
用户提供的东西存储在用户存储的任何地方 - 可能是在他或她的头脑中.这不是软件可以访问的,这使其成为降低恶意软件攻击风险的理想选择.如果输入的密码有效,您无法知道用户是否被授权,但是您可以定义策略,例如最小密钥长度,最大入口尝试次数(在引入一些延迟或其他锁定之前)等等.
| 归档时间: |
|
| 查看次数: |
2739 次 |
| 最近记录: |