2013-07-16 7 views
12

Potrzebuję używać SQLCipher dla Androida ... już zrobiłem moją aplikację za pomocą SQLite i chcę po prostu przekonwertować ją do SQLCipher.Jak rozpocząć korzystanie z SQLCipher dla Androida?

Problem polega na tym, że nie wiem nic o SQLCipher.

Czytałem o tym w ten link: http://sqlcipher.net/sqlcipher-for-android/

ale nie jestem zbyt jasne, nadal. Zastanawiam się, czy możesz podać podstawowe sqlcipher dla samouczków na Androida, gdzie wszystko jest nauczane w prosty sposób od absolutnych podstaw.

Dzięki!

+3

Zrobiłem warsztat konferencyjny na temat SQLCipher i związanych z nim kwestii bezpieczeństwa (http://www.slideshare.net/commonsguy/sqlcipher-for-android) i mam dwa rozdziały w mojej książce na temat SQLCipher, w tym samouczek, którego użyłem do część praktyczna tego warsztatu (http://commonsware.com/Android). – CommonsWare

+0

Czy masz konkretne pytania, które są niejasne? –

Odpowiedz

23

Aby poprawnie korzystać z SQL Cipher dla Androida, musisz użyć zewnętrznych bibliotek i zmienić część kodu, który współdziała z Twoim DB.

  1. Te muszą być najpierw dodany do projektu (w folderze libs). Patrz tutaj, aby uzyskać te: http://sqlcipher.net/sqlcipher-for-android/

  2. drugie trzeba dodać plik do folderu icudt4dl.zip swoje aktywa, w tym Zip jest dostarczany z bibliotekami SQL Cipher.

  3. Kliknij prawym przyciskiem myszy swój projekt, przejdź do właściwości, a następnie ścieżka kompilacji Java, a następnie dołącz biblioteki takie jak commons-codec.jar, guava-r09.jar, sqlcipher.jar. Gdy to zrobisz, zrób kompilację czystą.

  4. Następnie w ciągu swojej aplikacji, zamiast importować android.database.sqlite, będzie import import net.sqlcipher.database

  5. zmienić dowolny kod, który współdziała z DB, np:

    SQLiteDatabase. loadLibs (kontekst);

    String dbPath = this.getDatabasePath ("dbname.db"). GetPath();

    SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase (dbPath, "dbPassword", null);

  6. Sprawdź, czy baza danych jest szyfrowana, przejdź do DDMS perspektywy w Eclipse, kliknij kartę Plik Explorer, przejdź do danych/data /, kliknij na plik .db i wybierz się plik urządzenia, zapisz go na pulpicie i otwórz go za pomocą edytora tekstu. Poszukaj wartości tekstowych wstawianych do bazy danych, jeśli nadal możesz je przeczytać, coś poszło nie tak.

Warto również zapoznać się z samouczkami SQLite przed wdrożeniem SQL Cipher. Dobrym jeden wymienione poniżej: Android sqlite database - where do i start as the tutorial has gone for notepad?

Aktualizacja

Ta odpowiedź jest przestarzała i teraz Eclipse jest praktycznie przestarzałe Android Development. Niedawno musiałem zbudować aplikację przy użyciu SQLCipher w Android Studio na Androida 5 + 6 i to są kroki, które podążyłem.

W Android Studio można dołączyć SQLCipher jako zależność w pliku kompilacji.Zaktualizować zależności w kompilacji Gradle zawierać 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 będzie budować, chyba że usunęła SQLCipher pliki w lib folder i folder zasobów, ale potem działało zgodnie z oczekiwaniami. Po wprowadzeniu tych zmian uruchom kompilację/wyczyść i sprawdź, czy działa.

Te same czynności, o których mowa powyżej ze zmianą kodu, nadal trwają.

+1

Zobacz ten post, ponieważ jest bardziej aktualny: http://stackoverflow.com/a/34309425/684582 –

7

Podczas gdy nadal możesz śledzić numer Zetetic's Eclipse tutorial i dodawać biblioteki .so, naprawdę nie musisz tego robić w Android Studio. Po prostu dodaj zależność Gradle, np. compile net.zetetic:android-database-sqlcipher:[email protected] i jesteś gotowy do pracy!

Here zawsze możesz sprawdzić najnowszą wersję aar i here możesz przeczytać więcej na temat integracji.

Powiązane problemy