如何在使用SQLiteOpenHelper时实现SQLCipher

JZw*_*ige 10 sqlite android android-sqlite

我试图通过在Android应用程序中已经存在且正常运行的数据库设置中实现加密来保护一些合理的数据.

我试着按照这个教程(http://sqlcipher.net/sqlcipher-for-android/)浏览了很多foruns,包括用于Cipher的google组.但是,我仍然不清楚SQLCipher如何工作以及如何调整我的代码以满足我的需求.

我下面这个实现的android系统数据库:http://www.vogella.com/articles/AndroidSQLite/#databasetutorial_database,这意味着我有SQLiteOpenHelper类的扩展和另一个类存储CRUD方法.

在这种情况下我应该如何使用SQLCipher?我应该在哪里定义密码?我应该在哪里使用loadLibs(上下文)?只在主要活动中?或者在访问数据库的每个活动中?

我觉得我差不多了,我只需要最后的推动来解决这个问题:P提前谢谢!

Ost*_*tan 18

在这种情况下我应该如何使用SQLCipher?

完全像正常的sql实现正常.

我应该在哪里定义密码?

如果您使用的是SQLiteHelper,它将在您第一次得到它时创建数据库:

helper.getWriteableDatabase("myPassword");
Run Code Online (Sandbox Code Playgroud)

在第一次调用时,它将使用此密码创建数据库.在upcoing调用它只能使用此密码.

(当我去源时想出来:https://github.com/sqlcipher/android-database-sqlcipher/blob/master/src/net/sqlcipher/database/SQLiteOpenHelper.java,checkout方法getWriteableDatabase(String pw) ) 那里! )

我应该在哪里使用loadLibs(上下文)?

就在你 第一次打电话之前helper.getWriteableDatabase("myPassword"); !