2013-02-12 6 views
1

Je veux savoir. J'essaie de rendre ma db privée. c'est possible.Base de données sécurisée SQLite

Comment utiliser context.MODE_PRIVATE dans SQLite DB.

Je veux que mon autre application db privée ne puisse accéder à cette base de données.

+0

Les fichiers de votre application sont en sandbox. Le contenu de votre base de données ne sera pas accessible aux autres applications à moins que vous ne le fassiez. La seule façon pour les autres applications de voir vos fichiers sans votre autorisation/en dehors des manières que vous spécifiez est si l'utilisateur a des privilèges root (auquel cas tous les paris sont désactivés sauf si vos données sont cryptées). – Karakuri

+0

selon votre vue il n'y a rien de context.MODE_PRIVATE dans sqlite right? – Unknown

+0

Pas que je sache. 'Context.MODE_PRIVATE' est utilisé pour la création de fichier, mais la création de base de données est normalement effectuée par votre implémentation de' SQLiteOpenHelper'. Je n'ai vu aucun moyen de spécifier n'importe quel mode de création de fichier pour cela (mais c'est correct, 'Context.MODE_PRIVATE' est la valeur par défaut de toute façon). Dans tous les cas, les autres applications ne devraient pas pouvoir interagir avec votre base de données à moins que vous ayez un ContentProvider exporté et que vous ayez publié les URI, les noms de colonnes, etc. que d'autres applications pourraient utiliser pour interroger des données. – Karakuri

Répondre

4

Chiffrez vos données avant de les entrer dans la base de données. Pour autant que je sache, la base de données SQLite est conservée dans un seul fichier quelque part dans le répertoire/data /. De plus, vos données sont conservées au format texte brut. Cela signifie qu'il sera toujours possible à quelqu'un d'extraire ces données en enracinant le téléphone, en obtenant le fichier .db SQLite et en l'ouvrant avec un éditeur de texte.

L'auteur de sqlite propose une version qui crypte les données. Ce n'est pas gratuit

https://guardianproject.info/code/sqlcipher/ SQLCipher est une extension SQLite qui fournit un chiffrement AES 256 bits transparent des fichiers de base de données.

Le sqlcipher précédent qui est Open Source Full Database Encryption pour SQLite n'était pas disponible pour android. Mais maintenant, il est disponible en version alpha pour la plate-forme Android. Les développeurs ont mis à jour l'application android 'Notepadbot' pour utiliser SQLCipher.

0

Pour protéger votre base de données, vous devez créer votre base de données à l'intérieur de la mémoire cache d'une application. Et Android par défaut faire cette chose sauf que vous fournissez un external storage path pour enregistrer votre base de données.