Criptografa banco de dados SQLite sem aumentar o tamanho do aplicativo?

9

Existe alguma maneira de criptografar o banco de dados do meu aplicativo Android com menos aumento no tamanho do aplicativo? Eu tentei SQLcipher, mas está aumentando o tamanho do meu aplicativo por 10MB, o que é enorme.

    
por Ramu 11.07.2014 в 08:51
fonte

4 respostas

2

O aumento de 10 MB no seu APK ao usar o SqlCipher pode ser evitado enviando um APK separado para cada arquitetura Android que você deseja segmentar.

Por motivos de desempenho e suporte a várias plataformas, o SqlCipher é implementado no código C e criado como uma biblioteca nativa do Android .so usando o Android NDK. Uma biblioteca diferente é construída para cada arquitetura Android que ela suporta, que no caso do SqlCipher são:

  • armeabi
  • armeabi-v7a
  • x86

Para minimizar o aumento do tamanho do arquivo causado pelo SqlCipher, você pode criar um APK separado que inclua apenas a arquitetura correspondente ao dispositivo do usuário. Dê uma olhada no site de desenvolvedores do Android em como publicar várias configurações diferentes de dispositivos de segmentação por APK .

Durante meus testes, após essa técnica, reduzi meu APK de 10 MB para 4 MB.

Para mais informações, este artigo detalha como implementar o SqlCipher no Android e explica o aumento do tamanho do arquivo.

    
por BrentM 23.04.2015 / 07:36
fonte
0

Existem dois bancos de dados principais amplamente usados atualmente para aplicativos Java / Android. Neste caso, SqlLite e H2 Database . De acordo com SQLite vs H2 DB , podemos ver um conjunto de características de diferenças entre ambos bases de dados. Por exemplo, os dois bancos de dados possuem recursos ACID , transações , integridade referencial e representação Unicode . No entanto, apenas o H2 Database tem Dados de criptografia , Proteção de força bruta e Criptografia de rede nativa .

Este mecanismo de criptografia usa o algoritmo AES, no qual os arquivos do banco de dados podem ser criptografados. Como o H2 Database usa o AES para empituir arquivos de dados, em geral, podemos inferir que ele pode ser levemente lento do que o SqlLite porque o parser usado pelo [encript] é usado pelo AES. Então, en [de] crypt pode adicionar um custo geral em termos de eficiência quando foi usado o banco de dados H2.

Em resumo, o H2 Database pode ser uma alternativa útil para pequenos projetos quando os dados de criptografia são importantes. Além disso, é importante notar que mais experimental (benchmark empírico) é importante para tirar conclusões sobre questões de desempenho que envolvem bancos de dados de estandes. Observe que pequeno e levemente lento são subjetivos, pois precisamos de avaliação experimental para ser mais preciso para comparar os dois (ou outros) bancos de dados.

Algumas referências úteis usadas:

por EAA 01.04.2015 / 13:43
fonte
0

Depende de suas necessidades reais, mas uma maneira simples seria criptografar / descriptografar os dados antes de gravar / ler no banco de dados. Isso teria um impacto mínimo no tamanho do apk, mas há mais esforços necessários do seu lado.

Se for necessária alta segurança, apenas aceite os 10MB e continue com a vida: -)

    
por Ridcully 23.04.2015 / 08:01
fonte
0

se você estiver usando o gradel, inclua um abiFilter na configuração do gradle, por exemplo

ndk {
    abiFilters "armeabi", "armeabi-v7a"
}

Se isso não reduzir o tamanho suficiente, você precisará reconsiderar o uso do SQLCipher para fornecer criptografia de dados local ao seu aplicativo.

    
por Mr_Moradi 22.08.2018 / 09:52
fonte