За да използвате правилно SQL Cipher за Android, трябва да използвате външни библиотеки и да промените част от кода, който взаимодейства с вашата DB.
-
Те първо трябва да бъдат добавени към вашия проект (в папката libs.) Вижте тук, за да ги получите:http://sqlcipher.net/sqlcipher-for-android/
-
На второ място, трябва да добавите файла icudt4dl.zip към папката с активи, този Zip се предлага с библиотеките на SQL Cipher.
-
Щракнете с десния бутон върху вашия проект, отидете на свойства, след това път за изграждане на Java, след което включете библиотеки като commons-codec.jar, guava-r09.jar, sqlcipher.jar. След като това е направено, направете изчистена компилация.
-
След това във вашето приложение, вместо да импортирате android.database.sqlite, ще импортирате import net.sqlcipher.database
-
Променете всеки код, който взаимодейства с DB, например:
SQLiteDatabase.loadLibs(контекст);
Низ dbPath =this.getDatabasePath("dbname.db").getPath();
SQLiteDatabase db =SQLiteDatabase.openOrCreateDatabase(dbPath,"dbPassword", null);
-
Уверете се, че базата данни е криптирана, отидете на DDMS перспектива в Eclipse, щракнете върху раздела File Explorer, отидете на data/data/, щракнете върху .db файла и изберете get device file, запазете го на вашия работен плот и го отворете с текст редактор. Потърсете обикновените текстови стойности, които сте вмъкнали във вашата база данни, ако все още можете да ги прочетете, нещо се е объркало.
Може също да е добра идея да разгледате някои уроци по SQLite, преди да приложите SQL Cipher. Един добър е споменат тук:Android sqlite база данни - откъде да започна, тъй като урокът е отишъл за бележника?
Актуализиране
Този отговор вече е остарял и Eclipse на практика е остарял за разработка на Android. Наскоро трябваше да създам приложение с помощта на SQLCipher в Android Studio за Android 5 + 6 и това са стъпките, които следвах.
В Android Studio можете да включите SQLCipher като зависимост във вашия файл за изграждане. Актуализирайте своите зависимости в build gradle, за да включите следния ред:
dependencies{
compile 'net.zetetic:android-database-sqlcipher:[email protected]'
}
Можете да бъдете в крак с версиите тук:https://mvnrepository.com/artifact/net.zetetic/android-database-sqlcipher
Приложението ми нямаше да се изгради, освен ако не премахнах SQLCipher файловете в папката lib и папката с активи, но след това работи според очакванията. След като направите тези промени, стартирайте изграждане/почистване и проверете дали работи.
Същите стъпки, споменати по-горе с промяната на кода ви, продължават да са валидни.