web-dev-qa-db-fra.com

Puis-je chiffrer la base de données SQLite avec un mot de passe?

J'utilise la version 3 de la base de données SQLite avec l'application Windows C #. Je souhaite chiffrer le fichier de base de données SQLite en utilisant un mot de passe ou tout autre moyen de chiffrement afin d'empêcher les clients de l'ouvrir à partir du dossier des fichiers programme.

je ne veux pas de moyens de chiffrement à l'exécution, je veux juste que le champ de mot de passe indique le champ de mot de passe lorsqu'un client essaie de l'ouvrir à partir des fichiers du programme .. merci

Modifier

et si je l'ai crypté à partir de code, le client peut l'ouvrir lorsque l'installation est terminée et que le fichier db est transféré dans les fichiers du programme avant d'ouvrir le programme pour effectuer le cryptage, n'est-ce pas?

17
Hassanation

J'utilise SQLite version 3 fonctionne parfaitement! Vous devez le faire:

//if the database has already password
try{
            string conn = @"Data Source=database.s3db;Password=Mypass;";
            SQLiteConnection connection= new SQLiteConnection(conn);
            connection.Open();
            //Some code
            connection.ChangePassword("Mypass");
            connection.Close();
    }
//if it is the first time sets the password in the database
catch
    {
            string conn = @"Data Source=database.s3db;";
            SQLiteConnection connection= new SQLiteConnection(conn);
            connection.Open();
            //Some code
            connection.ChangePassword("Mypass");
            connection.Close();
    }

par la suite si l'utilisateur essaie d'ouvrir la base de données. dira protégé par Admin ou la base de données est cryptée ou n'est pas une base de données ou un fichier corrompu!

24
Luis Granado

Trouvé dans ce forum un post indiquant que ..

Standard SQLite3 API doesn't offer any form of protection and relies only on underlying OS privileges mecanism (if any) for "security". If you have an existing SQLite-style database which uses a specific API to gain access, then you should use this particular (non-standard) API.

Si vous pouvez/voulez utiliser une sorte d’extension pour SQLite, vous pouvez aussi essayer Extension de SQLite Encryption (SEE) ou SQLite Crypt

Mais vous pouvez changer/définir un mot de passe pour votre base de données en utilisant SQLite.Data comme indiqué dans cet article .

3
Pilgerstorfer Franz

Essayez sqlitestudio.pl en tant qu'éditeur.
Pour Type de base de données, choisissez System.Data.SQLite lors de la connexion.

2
Volkan Akkuş

Malheureusement, le mot de passe dans le fichier SQlite peut être ajouté, supprimé ou modifié uniquement à partir du code. Pour cela, vous avez besoin de l'espace de noms System.Data.SQLite qui vous fournira des méthodes, ainsi que des adaptateurs et des connexions.

1
Nikhil Agrawal

Vous pouvez utiliser le cryptage intégré du fournisseur sq-lite .net (System.Data.SQLite). Essayez ceci:

http://sqlite.phxsoftware.com/forums/t/130.aspxentrez la description du lien ici

Ou utilisez:

API SQLiteCrypt

0
KF2