SQLCipher - Совместное использование базы данных, созданной Windows, с приложением Android - PullRequest
1 голос
/ 16 марта 2012

Я скомпилировал версию SQLCipher оболочки командной строки sqlite3 в Windows и успешно создал зашифрованную базу данных. Затем я хотел посмотреть, смогу ли я использовать эту готовую базу данных в приложении для Android. Я скопировал базу данных в приложение для Android и попытался вызвать SQLiteDatabase.openDatabase и передал ключ, который использовал в Windows, но получил следующее:

"Причина: info.guardianproject.database.sqlcipher.SQLiteException: файл зашифрован или не является базой данных"

Кто-нибудь пытался сначала создать зашифрованную базу данных в Windows, а затем упаковывать эту базу данных в свое приложение? Если да, каков процесс ввода и открытия базы данных в приложении Android?

Я прочитал ссылки ниже, но не нашел решения:

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

Как прочитать зашифрованную базу данных, созданную ранее на ПК с sqlcipher на Android?

1 Ответ

0 голосов
/ 19 марта 2012

Если вы используете программу командной строки SQLCipher 2 для создания базы данных, вам следует:

  1. Используйте SQLCipher для Android 2.0.0 (https://github.com/sqlcipher/android-database-sqlcipher/downloads); или
  2. При создании базы данных с использованием командной строки также запустите PRAGMA cipher_use_hmac = OFF сразу после установки ключа для новой базы данных для отключения HMAC. Это создаст 1.1.x совместимую базу данных, которая будет работать с SQLCipher для Andodi 1.x
...