Aby poprawnie używać SQL Cipher dla Androida, musisz użyć zewnętrznych bibliotek i zmienić część kodu, który współdziała z Twoją bazą danych.
-
Należy je najpierw dodać do projektu (w folderze libs). Zapoznaj się z nimi, aby je pobrać:http://sqlcipher.net/sqlcipher-for-android/
-
Po drugie, musisz dodać plik icudt4dl.zip do folderu zasobów, ten Zip jest dostarczany z bibliotekami SQL Cipher.
-
Kliknij prawym przyciskiem myszy swój projekt, przejdź do właściwości, a następnie do ścieżki budowania Java, a następnie dołącz biblioteki, takie jak commons-codec.jar, guava-r09.jar, sqlcipher.jar. Gdy to zrobisz, wykonaj czystą kompilację.
-
Następnie w aplikacji, zamiast importować android.database.sqlite, zaimportujesz import net.sqlcipher.database
-
Zmień dowolny kod, który współdziała z bazą danych, na przykład:
SQLiteDatabase.loadLibs(kontekst);
String dbPath =this.getDatabasePath("dbname.db").getPath();
SQLiteDatabase db =SQLiteDatabase.openOrCreateDatabase(dbPath,"dbPassword", null);
-
Sprawdź, czy baza danych jest zaszyfrowana, przejdź do perspektywy DDMS w Eclipse, kliknij zakładkę eksploratora plików, przejdź do data/data/, kliknij plik .db i wybierz pobierz plik urządzenia, zapisz go na pulpicie i otwórz za pomocą tekstu redaktor. Poszukaj wartości zwykłego tekstu, które wstawiłeś do swojej bazy danych, jeśli nadal możesz je odczytać, coś poszło nie tak.
Dobrym pomysłem może być również zapoznanie się z samouczkami SQLite przed wdrożeniem SQL Cipher. Dobra jest wspomniana tutaj:baza danych Android sqlite - od czego mam zacząć, ponieważ samouczek poszedł do notatnika?
Aktualizacja
Ta odpowiedź jest już nieaktualna, a Eclipse jest praktycznie przestarzałe dla Android Development. Niedawno musiałem zbudować aplikację przy użyciu SQLCipher na Android Studio dla Androida 5 + 6 i są to kroki, które wykonałem.
W Android Studio możesz dołączyć SQLCipher jako zależność w pliku kompilacji. Zaktualizuj swoje zależności w build Gradle, aby uwzględnić następujący wiersz:
dependencies{
compile 'net.zetetic:android-database-sqlcipher:[email protected]'
}
Możesz być na bieżąco z wersjami tutaj:https://mvnrepository.com/artifact/net.zetetic/android-database-sqlcipher
Moja aplikacja nie została zbudowana, dopóki nie usunąłem plików SQLCipher w folderze lib i folderze zasobów, ale potem działała zgodnie z oczekiwaniami. Po wprowadzeniu tych zmian uruchom kompilację/oczyść i sprawdź, czy działa.
Te same kroki, o których mowa powyżej, dotyczące zmiany kodu, nadal obowiązują.