我正在尝试通过在Android应用程序中已经存在且可以正常运行的数据库设置中实现加密来保护一些明智的数据。

我试图按照本教程(http://sqlcipher.net/sqlcipher-for-android/)进行浏览,浏览了很多论坛,包括Google密码小组。但是,我仍然不清楚SQLCipher是如何工作的,以及如何修改代码以满足我的需求。

我正在android中实现数据库的这种实现:http://www.vogella.com/articles/AndroidSQLite/#databasetutorial_database,这意味着我具有SQLiteOpenHelper类的扩展和另一个用于存储CRUD方法的类。

在这种情况下,我应该如何使用SQLCipher?我应该在哪里定义密码?我应该在哪里使用loadLibs(context)?仅在主要 Activity 中?还是在访问数据库的每个 Activity 中?

我觉得我快到了,我只需要最后一搏就可以解决这个问题:P
提前致谢!

最佳答案

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

就像普通的普通sql实现一样。

我应该在哪里定义密码?

如果您使用的是SQLiteHelper,它将在首次获取数据库时创建数据库,如下所示:

helper.getWriteableDatabase("myPassword");

第一次调用时,它将使用此密码创建数据库。在upcoing调用中,它将仅使用此密码工作。

(弄清楚当我转到Source:https://github.com/sqlcipher/android-database-sqlcipher/blob/master/android-database-sqlcipher/src/main/java/net/sqlcipher/database/SQLiteOpenHelper.java时, check out 方法getWriteableDatabase(String pw)
那里! )

我应该在哪里使用loadLibs(context)?

在您第一次致电 helper.getWriteableDatabase("myPassword"); 之前!

关于android - 使用SQLiteOpenHelper时如何实现SQLCipher,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17754283/

10-13 00:52