För att använda SQL Cipher för Android korrekt måste du använda externa bibliotek och ändra en del av koden som interagerar med din DB.
-
Dessa måste först läggas till i ditt projekt (i mappen libs.) Se här för att få dessa:http://sqlcipher.net/sqlcipher-for-android/
-
För det andra måste du lägga till filen icudt4dl.zip i din tillgångsmapp, denna zip kommer med SQL Chiffer-biblioteken.
-
Högerklicka på ditt projekt, gå till egenskaper och sedan Java-byggväg och inkludera sedan bibliotek som commons-codec.jar, guava-r09.jar, sqlcipher.jar. När detta är gjort, gör en build-rengöring.
-
Sedan i din app, istället för att importera android.database.sqlite, importerar du import net.sqlcipher.database
-
Ändra vilken kod som helst som interagerar med DB, till exempel:
SQLiteDatabase.loadLibs(context);
String dbPath =this.getDatabasePath("dbname.db").getPath();
SQLiteDatabase db =SQLiteDatabase.openOrCreateDatabase(dbPath,"dbPassword", null);
-
Verifiera att databasen är krypterad, gå till DDMS-perspektiv i Eclipse, klicka på filutforskaren, navigera till data/data/, klicka på .db-filen och välj hämta enhetsfil, spara den på skrivbordet och öppna den med en text redaktör. Leta efter de vanliga textvärdena du har infogat i din databas, om du fortfarande kan läsa dem har något gått fel.
Det kan också vara en bra idé att kolla in några SQLite-tutorials innan du implementerar SQL Cipher. En bra sådan nämns här:Android sqlite databas - var börjar jag eftersom handledningen har gått för anteckningar?
Uppdatera
Det här svaret är föråldrat nu och Eclipse är praktiskt taget föråldrat för Android-utveckling. Jag var nyligen tvungen att bygga en app med SQLCipher på Android Studio för Android 5 + 6 och det här är stegen jag följde.
I Android Studio kan du inkludera SQLCipher som ett beroende i din byggfil. Uppdatera dina beroenden i build gradle för att inkludera följande rad:
dependencies{
compile 'net.zetetic:android-database-sqlcipher:[email protected]'
}
Du kan hålla dig uppdaterad med versioner här:https://mvnrepository.com/artifact/net.zetetic/android-database-sqlcipher
Min app skulle inte byggas om jag inte tog bort SQLCipher-filerna i lib-mappen och asset-mappen, men efter det fungerade det som förväntat. När du har gjort dessa ändringar, kör en build/rengöring och kontrollera om det fungerar.
Samma steg som nämnts ovan med att ändra din kod gäller fortfarande.