加密sqlite数据库Android:

Ams*_*eer 6 database sqlite encryption android sqlcipher

嗨,我正在运行的应用程序,我已经有一个现有sqlite的数据库.现在问题是任何人都可以sqlite database从设备中拔出并可以使用它.现在我需要encrypt the sqlite file.我发现它SQLCipher用于加密sqlite数据库.但真正的问题是我没有任何想法,SQLCipher也不知道它是如何工作的.尝试使用不同的项目.什么都没有帮助.请有人告诉我如何加密我的sqlite数据库.

提前致谢.

Com*_*are 19

步骤#0:将代码添加到UI以提示用户输入密码.

步骤1:下载SQLCipher for Android ZIP文件.

步骤#2:解压缩ZIP文件并导航到具有assets/libs/文件夹的目录.

步骤3:将assets/目录的内容复制到项目的assets/目录中.

步骤#4:将libs/目录的内容复制到项目的libs/目录中.Gradle/Android Studio用户还需要在顶级dependencies闭包中添加一行,加载内容libs/,如果您还没有.

步骤#5:用他们的SQLCipher for Android等效替换所有相关android.database.*android.database.sqlite.*导入.如果您使用的是IDE,可以帮助您解决失踪进口(如Ctrl- Shift- O在Eclipse),最容易做的事情是摆脱所有现有的android.database.*android.database.sqlite.*进口的,让IDE帮助解决这些问题.net.sqlcipher在给出选择时选择导入.

步骤#6:现在,您将在打开数据库的几个方法(例如,getReadableDatabase()打开SQLiteOpenHelper)上遇到编译器错误,现在需要传入您在步骤#0中从用户收集的密码.

这适用于以新数据库启动的新应用程序.如果要允许这些用户切换到加密数据库,还需要执行额外的工作来升级现有用户的现有应用程序.

  • Dude @CommonsWare不要忘记添加SQLiteDatabase.loadLibs(this); (3认同)