Ответ 1
Чтобы правильно использовать SQL Cipher для Android, вы должны использовать внешние библиотеки и изменить часть кода, который взаимодействует с вашей БД.
-
Они должны быть сначала добавлены в ваш проект (в папке libs). См. здесь, чтобы получить следующее: http://sqlcipher.net/sqlcipher-for-android/
-
Во-вторых, вам нужно добавить файл icudt4dl.zip в свою папку с ресурсами, этот Zip поставляется с библиотеками SQL Cipher.
-
Щелкните правой кнопкой мыши свой проект, перейдите к свойствам, затем путь построения Java, а затем включите библиотеки, такие как commons-codec.jar, guava-r09.jar, sqlcipher.jar. Как только это будет сделано, выполните сборку.
-
Затем в вашем приложении вместо импорта android.database.sqlite вы импортируете импорт net.sqlcipher.database
-
Измените любой код, который взаимодействует с БД, например:
SQLiteDatabase.loadLibs(контекст);
String dbPath = this.getDatabasePath( "dbname.db" ). getPath();
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbPath, "dbPassword", null);
-
Убедитесь, что база данных зашифрована, перейдите на страницу DDMS в Eclipse, перейдите на вкладку проводника файлов, перейдите к данным/данным/, щелкните файл .db и выберите файл устройства, сохраните его на рабочем столе и откройте его текстовым редактором. Ищите значения обычного текста, которые вы вставляете в свою базу данных, если вы все еще можете их прочитать, что-то пошло не так.
Также может быть хорошей идеей проверить некоторые учебники SQLite до внедрения SQL Cipher. Хороший упоминается здесь: Android-база данных sqlite - где я начинаю, когда учебник отправляется на блокнот?
Обновление
Этот ответ устарел сейчас, и Eclipse практически не рекомендуется для Android Development. Недавно мне нужно было создать приложение с использованием SQLCipher в Android Studio для Android 5 + 6, и это шаги, которые я выполнил.
В Android Studio вы можете включить SQLCipher в качестве зависимости в файле сборки. Обновите свои зависимости в сборке gradle, чтобы включить следующую строку:
dependencies{
compile 'net.zetetic:android-database-sqlcipher:[email protected]'
}
Вы можете быть в курсе последних версий: https://mvnrepository.com/artifact/net.zetetic/android-database-sqlcipher
Мое приложение не будет создано, если я не удалю файлы SQLCipher в папке lib и папке с ресурсами, но после этого он работал, как ожидалось. После внесения этих изменений запустите сборку/очистку и проверьте, работает ли она.
Те же шаги, которые были упомянуты выше, с изменением кода, остаются.