如何在 android 上使用 sqlcipher 读取以前在 pc 上创建的加密数据库?
Posted
技术标签:
【中文标题】如何在 android 上使用 sqlcipher 读取以前在 pc 上创建的加密数据库?【英文标题】:How to read an encrypted database created previously on pc with sqlcipher on android? 【发布时间】:2012-03-13 00:51:16 【问题描述】:我正在尝试在我的 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 的相同数据库,我没有任何问题。 谁能教我如何在 android 上读取计算机上加密的数据库? 欣赏;)
【问题讨论】:
我遇到了类似的问题并收到了解决方案:***.com/questions/9742686/… @djx- 你能解决问题吗?我真的很感激任何帮助!谢谢 【参考方案1】:您将需要使用 SQLCipher for Android 库,该库允许您访问和修改 Android 设备上的 sqlcipher 数据库。我们目前支持 Android 2.1 - 4.0.3。二进制下载可以在这里找到:
https://github.com/sqlcipher/android-database-sqlcipher/downloads
可以在此处找到有关迭代 SQLCipher for Android 的教程:
http://sqlcipher.net/sqlcipher-for-android/
【讨论】:
我已经像教程中一样添加了库,但仍然无法正常工作。 另外,该教程没有教如何读取从 PC 创建的数据库 @djx- 你能解决问题吗?我真的很感激任何帮助!谢谢 @nia - 对不起,没有,从那以后我一直在等待是否有人有任何例子或类似的东西。如果你有任何进展,请告诉我。 @aanm 我现在也面临这个问题......你解决了这个问题吗?我被困住了,无法获得任何帮助......以上是关于如何在 android 上使用 sqlcipher 读取以前在 pc 上创建的加密数据库?的主要内容,如果未能解决你的问题,请参考以下文章