For korrekt at bruge SQL Cipher til Android skal du bruge eksterne biblioteker og ændre noget af koden, som interagerer med din DB.
-
Disse skal først tilføjes til dit projekt (indenfor mappen libs.) Se her for at få disse:http://sqlcipher.net/sqlcipher-for-android/
-
For det andet skal du tilføje filen icudt4dl.zip til din aktiver-mappe, denne zip kommer med SQL Cipher-bibliotekerne.
-
Højreklik på dit projekt, gå til egenskaber og derefter Java build-sti og inkluder biblioteker såsom commons-codec.jar, guava-r09.jar, sqlcipher.jar. Når dette er gjort, skal du lave en build-rengøring.
-
Så i din app vil du i stedet for at importere android.database.sqlite importere import net.sqlcipher.database
-
Ændre enhver kode, der interagerer med DB, eksempel:
SQLiteDatabase.loadLibs(context);
String dbPath =this.getDatabasePath("dbname.db").getPath();
SQLiteDatabase db =SQLiteDatabase.openOrCreateDatabase(dbPath,"dbPassword", null);
-
Bekræft, at databasen er krypteret, gå til DDMS-perspektiv i Eclipse, klik på filstifinderfanen, naviger til data/data/, klik på .db-filen og vælg hent enhedsfil, gem den på dit skrivebord og åbn den med en tekst redaktør. Se efter de almindelige tekstværdier, du har indsat i din database, hvis du stadig kan læse dem, er noget gået galt.
Det kan også være en god idé at tjekke nogle SQLite-tutorials, før du implementerer SQL Cipher. En god en er nævnt her:Android sqlite-database - hvor starter jeg, da vejledningen er gået til notesblok?
Opdater
Dette svar er forældet nu, og Eclipse er praktisk talt forældet til Android-udvikling. Jeg var for nylig nødt til at bygge en app ved hjælp af SQLCipher på Android Studio til Android 5 + 6, og dette er de trin, jeg fulgte.
I Android Studio kan du inkludere SQLCipher som en afhængighed i din build-fil. Opdater dine afhængigheder i build gradle til at inkludere følgende linje:
dependencies{
compile 'net.zetetic:android-database-sqlcipher:[email protected]'
}
Du kan holde dig opdateret med versioner her:https://mvnrepository.com/artifact/net.zetetic/android-database-sqlcipher
Min app ville ikke bygge, medmindre jeg fjernede SQLCipher-filerne i lib-mappen og asset-mappen, men efter det virkede det som forventet. Når du har foretaget disse ændringer, skal du køre en build/clean og kontrollere, om det virker.
De samme trin nævnt ovenfor med at ændre din kode gælder stadig.