Para usar corretamente o SQL Cipher para Android, você deve usar bibliotecas externas e alterar parte do código que interage com seu banco de dados.
-
Eles devem primeiro ser adicionados ao seu projeto (dentro da pasta libs.) Consulte aqui para obtê-los:http://sqlcipher.net/sqlcipher-for-android/
-
Em segundo lugar, você precisa adicionar o arquivo icudt4dl.zip à sua pasta de ativos, este Zip vem com as bibliotecas SQL Cipher.
-
Clique com o botão direito do mouse em seu projeto, vá para propriedades e depois para o caminho de construção Java e inclua bibliotecas como commons-codec.jar, guava-r09.jar, sqlcipher.jar. Feito isso, faça um build clean.
-
Então, dentro do seu aplicativo, em vez de importar android.database.sqlite, você importará import net.sqlcipher.database
-
Altere qualquer código que interaja com o DB, exemplo:
SQLiteDatabase.loadLibs(contexto);
String dbPath =this.getDatabasePath("dbname.db").getPath();
SQLiteDatabase db =SQLiteDatabase.openOrCreateDatabase(dbPath,"dbPassword", null);
-
Verifique se o banco de dados está criptografado, vá para a perspectiva DDMS no Eclipse, clique na guia do explorador de arquivos, navegue até data/data/, clique no arquivo .db e selecione obter arquivo de dispositivo, salve-o em sua área de trabalho e abra-o com um texto editor. Procure os valores de texto simples que você está inserindo em seu banco de dados, se você ainda pode lê-los, algo deu errado.
Também pode ser uma boa ideia conferir alguns tutoriais do SQLite antes de implementar o SQL Cipher. Um bom é mencionado aqui:Banco de dados sqlite do Android - por onde começo, pois o tutorial foi para o bloco de notas?
Atualizar
Esta resposta está desatualizada agora e o Eclipse está praticamente obsoleto para desenvolvimento Android. Recentemente, tive que criar um aplicativo usando SQLCipher no Android Studio para Android 5 + 6 e essas são as etapas que segui.
No Android Studio, você pode incluir SQLCipher como uma dependência em seu arquivo de compilação. Atualize suas dependências no build gradle para incluir a seguinte linha:
dependencies{
compile 'net.zetetic:android-database-sqlcipher:[email protected]'
}
Você pode manter-se atualizado com as versões aqui:https://mvnrepository.com/artifact/net.zetetic/android-database-sqlcipher
Meu aplicativo não seria compilado a menos que eu removesse os arquivos SQLCipher na pasta lib e na pasta de ativos, mas depois disso funcionou conforme o esperado. Depois de fazer essas alterações, execute um build/clean e verifique se funciona.
As mesmas etapas mencionadas acima para alterar seu código ainda são válidas.