SQLCipher - 与Android应用程序共享Windows创建的数据库

时间:2012-03-16 18:31:45

标签: android sqlite sqlcipher

我在Windows上编译了sqlite3命令行shell的SQLCipher版本,并成功创建了一个加密数据库。然后我想看看我是否可以在Android应用中使用这个预制数据库。我将数据库复制到Android应用程序并尝试调用SQLiteDatabase.openDatabase并传入我在Windows上使用的密钥,但得到以下内容:

“引起:info.guardianproject.database.sqlcipher.SQLiteException:文件已加密或不是数据库”

有没有人尝试先在Windows上创建加密数据库,然后用他们的应用程序打包该数据库?如果是这样,在Android应用程序中键入和打开数据库的过程是什么?

我已阅读下面的链接,但未找到解决方案:

https://groups.google.com/group/sqlcipher/browse_thread/thread/d2694975e8f3809f

How to read an encrypted database created previously on pc with sqlcipher on android?

1 个答案:

答案 0 :(得分:0)

如果您使用SQLCipher 2命令行程序来创建数据库,则应该:

  1. 使用SQLCipher for Android 2.0.0(https://github.com/sqlcipher/android-database-sqlcipher/downloads);或
  2. 使用命令行创建数据库时,在设置新数据库的密钥以禁用HMAC后立即运行PRAGMA cipher_use_hmac = OFF。这将创建一个1.1.x兼容的数据库,该数据库将与SQLCipher一起用于Andodi 1.x