您好,在我正在运行的应用中,我已经有了一个现有的sqlite
数据库。现在问题是任何人都可以从设备中提取sqlite database
并可以使用它。现在我需要encrypt the sqlite file
。我发现SQLCipher
用于加密sqlite数据库。但真正的问题是我对SQLCipher
没有任何想法,也不知道它是如何运作的。尝试使用不同的项目。什么都没有帮助。请有人告诉我如何加密我的sqlite数据库。
提前致谢。
答案 0 :(得分:19)
步骤#0:将代码添加到UI以提示用户输入密码。
步骤1:下载SQLCipher for Android ZIP file。
步骤2:解压缩ZIP文件并导航到包含assets/
和libs/
文件夹的目录。
步骤3:将assets/
目录的内容复制到项目的assets/
目录中。
步骤4:将libs/
目录的内容复制到项目的libs/
目录中。 Gradle / Android Studio用户还需要在顶级dependencies
关闭中添加一行,以加载libs/
的内容,如果您还没有。{/ p>
步骤5:将所有相关的android.database.*
和android.database.sqlite.*
导入替换为其SQLCipher for Android等效项。如果您使用的IDE可以帮助您解决缺少的导入(例如,Eclipse中的 Ctrl - Shift - O ),那么最简单的方法就是做的是摆脱所有现有的android.database.*
和android.database.sqlite.*
导入,让IDE帮助解决它们。在给出选择时选择net.sqlcipher
导入。
步骤6:您现在将在打开数据库的几种方法上遇到编译器错误(例如getReadableDatabase()
上的SQLiteOpenHelper
),您现在需要传入从中收集的密码步骤#0中的用户。
这适用于以新数据库启动的新应用。如果您希望允许这些用户切换到加密数据库,还需要额外的工作来升级现有用户的现有应用程序。