我试图在我的PC上读取一个用sqlcipher创建的加密数据库,但我无法在我的应用程序上读取它。例如:
Cursor c = database.rawQuery("SELECT name FROM sqlite_master WHERE type='table'", null);
c.moveToFirst();
do {
String s = c.getString(0);
if (s.equals("android_metadata")) {
// System.out.println("Get Metadata");
continue;
} else {
dirArray.add(s);
}
} while (c.moveToNext());
Log.i("getS", "DATABASE = " + dirArray.toString());
Log.i("getS", "length = " + dirArray.size());
结果如下所示
03-12 03:28:12.691: I/getS(9895): DATABASE = []
03-12 03:28:12.691: I/getS(9895): length = 0
还有这一点:
Cursor c2 = database.query("my_table", new String[] { "name" }, null, null, null, null, "name");
返回到以下内容:
03-12 03:28:12.701: I/Database(9895): sqlite returned: error code = 1, msg = no such table: my_table
我正在用sdk-7编译,如果我尝试相同的数据库,没有加密和sqlcipher,我没有任何问题。有人能教我如何在安卓上阅读电脑上加密的数据库吗?欣赏;)
发布于 2012-03-13 21:19:41
您将希望使用SQLCipher for Android库,该库将允许您访问和修改Android设备上的sqlcipher数据库。我们目前支持Android 2.1 - 4.0.3。可以在以下位置找到二进制文件下载:
https://github.com/sqlcipher/android-database-sqlcipher/downloads
可以在这里找到安卓系统的itegrating SQLCipher的教程:
http://sqlcipher.net/sqlcipher-for-android/
https://stackoverflow.com/questions/9676905
复制相似问题