我是入门级开发人员,并且我正在开发一个Android应用程序,该应用程序完全依赖我存储在SQLite数据库中的数据。我不希望任何其他人观看数据库中的数据。该应用程序很简单。我将数据库与应用程序打包在一起,并且代码从该数据库中读取数据(脱机模式)。在这种模式下,我很少更新数据。 有人可以提出更好的方法吗?
以下是我尝试的内容: 试图使用SQLCipher,但最终在代码中的某些位置写了“密码” /“密码”。任何可以查看我的代码的人都可以轻松地通过“密码”查看我的数据。
第二种方式我在想什么,我如何在线建立该数据库?这意味着我需要使DB Server或AWS机器以及从该DB Server检索到的所有数据联机吗?如果这种方法更好,我计划使用Mongo DB(如果其他工具更好,则建议这样做)。从代码中,我需要指定ConnectionString,对吗?黑客或其他程序员看不到这些凭据。在这里,我需要简单,最佳的解决方案。提出这个问题的原因是,我不能花太多钱购买任何商业软件等。
如果它看起来很简单,请裸露我。
答案 0 :(得分:-1)
使用SQLCIPHER和JNI保护ANDROID SQLITE数据库
1)SQLCipher: SQLCipher是SQLite的开源扩展,它提供数据库文件的透明256位AES加密。
它提供对Java,Python,Android,iOS等的支持。
2)JNI(Java本机接口): 为了安全起见,它使用256位AES算法,该算法需要密钥来加密或解密文件。 因此,我们已使用JNI安全地存储密钥。
如何集成到项目中?
步骤:
创建新项目 提供包裹名称 选择选项“包括c ++支持” 创建活动并完成。 在build.gradle(app)中添加以下行 编译
‘net.zetetic:android-database-sqlcipher:3.5.4’
同步项目。