SQLite
 sql >> Database >  >> RDS >> SQLite

Come iniziare con SQLCipher per Android?

Per utilizzare correttamente SQL Cipher per Android devi utilizzare librerie esterne e modificare parte del codice che interagisce con il tuo DB.

  1. Questi devono essere prima aggiunti al tuo progetto (all'interno della cartella libs.) Fai riferimento qui per ottenerli:http://sqlcipher.net/sqlcipher-for-android/

  2. In secondo luogo è necessario aggiungere il file icudt4dl.zip alla cartella delle risorse, questo Zip viene fornito con le librerie di crittografia SQL.

  3. Fare clic con il pulsante destro del progetto, andare su proprietà, quindi percorso di compilazione Java, quindi includere librerie come commons-codec.jar, guava-r09.jar, sqlcipher.jar. Fatto ciò, esegui una pulizia della build.

  4. Quindi all'interno della tua app, invece di importare android.database.sqlite, importerai import net.sqlcipher.database

  5. Modifica qualsiasi codice che interagisce con il DB, ad esempio:

    SQLiteDatabase.loadLibs(contesto);

    Stringa dbPath =this.getDatabasePath("dbname.db").getPath();

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

  6. Verifica che il database sia crittografato, vai alla prospettiva DDMS in Eclipse, fai clic sulla scheda Esplora file, vai a dati/dati/, fai clic sul file .db e seleziona Ottieni file dispositivo, salvalo sul desktop e aprilo con un testo editore. Cerca i valori di testo normale che hai inserito nel tuo database, se riesci ancora a leggerli, qualcosa è andato storto.

Potrebbe anche essere una buona idea controllare alcuni tutorial SQLite prima di implementare SQL Cipher. Ne viene menzionato uno buono qui:Database sqlite Android - da dove comincio visto che il tutorial è andato per il blocco note?

Aggiorna

Questa risposta è obsoleta ora ed Eclipse è praticamente deprecato per lo sviluppo Android. Di recente ho dovuto creare un'app utilizzando SQLCipher su Android Studio per Android 5 + 6 e questi sono i passaggi che ho seguito.

In Android Studio, puoi includere SQLCipher come dipendenza nel tuo file di build. Aggiorna le tue dipendenze in build gradle per includere la seguente riga:

dependencies{
    compile 'net.zetetic:android-database-sqlcipher:[email protected]'
}

Puoi tenerti aggiornato con le versioni qui:https://mvnrepository.com/artifact/net.zetetic/android-database-sqlcipher

La mia app non sarebbe stata compilata a meno che non avessi rimosso i file SQLCipher nella cartella lib e nella cartella delle risorse, ma in seguito ha funzionato come previsto. Dopo aver apportato queste modifiche, esegui una build/clean e controlla se funziona.

Gli stessi passaggi sopra menzionati per la modifica del codice sono ancora validi.