SQLite-Datenbank verschlüsseln, ohne die App-Größe zu erhöhen?

9

Gibt es eine Möglichkeit, die Datenbank meiner Android-App mit weniger App-Größe zu verschlüsseln? Ich habe versucht, SQLCipher, aber es ist die Größe meiner App um 10 MB, die sehr groß ist.

    
Ramu 11.07.2014, 06:51
quelle

3 Antworten

2

Die Erhöhung von 10 MB in Ihrem APK bei Verwendung von SqlCipher kann vermieden werden, indem Sie ein separates APK für jede Android-Architektur bereitstellen, auf die Sie zielen möchten.

Aus Gründen der Performance und plattformübergreifenden Unterstützung wird SqlCipher in C-Code implementiert und als native Android .so-Bibliothek mit dem Android NDK erstellt. Für jede unterstützte Android-Architektur wird eine andere Bibliothek erstellt, die im Falle von SqlCipher:

ist
  • armeabi
  • armeabi-v7a
  • x86

Um den durch SqlCipher verursachten Anstieg der Dateigröße zu minimieren, können Sie ein separates APK erstellen, das nur die Architektur enthält, die Ihrem Benutzergerät entspricht. Sehen Sie sich die Android-Entwickler-Website unter an, um mehrere APKs auf unterschiedliche Gerätekonfigurationen zu veröffentlichen .

Während meiner Tests hat diese Technik meine APK von 10MB auf 4MB reduziert.

Weitere Informationen finden Sie in diesem Artikel zur Implementierung von SqlCipher unter Android und erklärt die Dateigröße erhöhen.

    
BrentM 23.04.2015 05:36
quelle
0

Derzeit gibt es zwei Hauptdatenbanken, die derzeit für Java / Android-Anwendungen weit verbreitet sind. In diesem Fall SqlLite und H2-Datenbank . Laut SQLite vs H2 DB können wir eine Reihe von Unterscheidungsmerkmalen zwischen beiden sehen Datenbanken. Zum Beispiel verfügen beide Datenbanken über ACID-Funktionen , Transaktionen , referenzielle Integrität und Unicode-Darstellung . Allerdings verfügt nur die H2-Datenbank über Verschlüsselungsdaten , Brute-Force-Schutz und Native Netzwerkverschlüsselung .

Dieser Verschlüsselungsmechanismus verwendet den AES-Algorithmus, mit dem die Datenbankdateien verschlüsselt werden können. Da die H2-Datenbank AES verwendet, um Datendateien zu empryptieren, können wir im Allgemeinen daraus schließen, dass es leicht langsam sein kann als SqlLite, da de [de] crypt-Parser vom AES verwendet wird. So kann en [de] crypt bei der Verwendung der H2-Datenbank einen Mehraufwand hinsichtlich der Effizienz hinzufügen.

Zusammenfassend kann H2 Database eine nützliche Alternative zu kleinen Projekten sein, wenn die Verschlüsselung von Daten wichtig ist. Darüber hinaus ist es wichtig zu beachten, dass experimenteller (empirischer Benchmark) wichtig ist, um Rückschlüsse auf Performance-Probleme zu ziehen, die Standdatenbanken betreffen. Beachten Sie, dass klein und leicht langsam subjektiv sind, da wir eine experimentelle Auswertung benötigen, um beide (oder andere) Datenbanken zu vergleichen.

Einige nützliche Referenzen verwendet:

EAA 01.04.2015 11:43
quelle
0

Es hängt von Ihren tatsächlichen Bedürfnissen ab, aber ein einfacher Weg wäre, die Daten selbst zu verschlüsseln / entschlüsseln, bevor Sie in die Datenbank schreiben / lesen. Dies hätte minimale Auswirkungen auf die apk Größe, aber es ist mehr Aufwand auf Ihrer Seite erforderlich.

Wenn hohe Sicherheit erforderlich ist, akzeptieren Sie einfach die 10 MB und gehen Sie mit Leben: -)

    
Ridcully 23.04.2015 06:01
quelle