SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Como começar com o SQLCipher para Android?


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.

  1. Eles devem primeiro ser adicionados ao seu projeto (dentro da pasta libs.) Consulte aqui para obtê-los:http://sqlcipher.net/sqlcipher-for-android/

  2. Em segundo lugar, você precisa adicionar o arquivo icudt4dl.zip à sua pasta de ativos, este Zip vem com as bibliotecas SQL Cipher.

  3. 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.

  4. Então, dentro do seu aplicativo, em vez de importar android.database.sqlite, você importará import net.sqlcipher.database

  5. 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);

  6. 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.