Vous pouvez utiliser le chiffrement intégré du fournisseur sqlite .net (System.Data.SQLite). Pour plus de détails, consultez http://web.archive.org/web/20070813071554/http://sqlite.phxsoftware.com/forums/t/130.aspx
Pour crypter une base de données non cryptée existante ou pour modifier le mot de passe d'une base de données cryptée , ouvrez la base de données puis utilisez la fonction ChangePassword () de SQLiteConnection:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.Open();
cnn.ChangePassword("mypassword");
Pour déchiffrer un appel de base de données chiffré existantChangePassword()
avec un mot de passe NULL
ou ""
:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3;Password=mypassword");
cnn.Open();
cnn.ChangePassword(null);
Pour ouvrir une base de données chiffrée existante ou pour créer une nouvelle base de données chiffrée, spécifiez un mot de passe dans le ConnectionString
comme indiqué dans l'exemple précédent, ou appelez la SetPassword()
fonction avant d'en ouvrir une nouvelle SQLiteConnection
. Les mots de passe spécifiés dans le ConnectionString
doivent être en texte clair, mais les mots de passe fournis dans la SetPassword()
fonction peuvent être des tableaux d'octets binaires.
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.SetPassword(new byte[] { 0xFF, 0xEE, 0xDD, 0x10, 0x20, 0x30 });
cnn.Open();
Par défaut, le mot clé ATTACH utilisera la même clé de chiffrement que la base de données principale lors de l'attachement d'un autre fichier de base de données à une connexion existante. Pour modifier ce comportement, vous utilisez le modificateur KEY comme suit:
Si vous attachez une base de données chiffrée à l'aide d'un mot de passe en texte clair:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.Open();
cmd = new SQLiteCommand("ATTACH DATABASE 'c:\\pwd.db3' AS [Protected] KEY 'mypassword'", cnn);
cmd.ExecuteNonQuery();
Pour attacher une base de données chiffrée à l'aide d'un mot de passe binaire:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.Open();
cmd = new SQLiteCommand("ATTACH DATABASE 'c:\\pwd.db3' AS [Protected] KEY X'FFEEDD102030'", cnn);
cmd.ExecuteNonQuery();