Sie können die integrierte Verschlüsselung des SQLite .net-Anbieters (System.Data.SQLite) verwenden. Weitere Informationen finden Sie unter http://web.archive.org/web/20070813071554/http://sqlite.phxsoftware.com/forums/t/130.aspx
Öffnen Sie die Datenbank und verwenden Sie die ChangePassword () - Funktion von SQLiteConnection, um eine vorhandene unverschlüsselte Datenbank zu verschlüsseln oder das Kennwort einer verschlüsselten Datenbank zu ändern:
// Opens an unencrypted database
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.Open();
// Encrypts the database. The connection remains valid and usable afterwards.
cnn.ChangePassword("mypassword");
Um eine vorhandene verschlüsselte Datenbank zu entschlüsseln Aufruf ChangePassword()
mit einem NULL
oder ""
Passwort:
// Opens an encrypted database
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3;Password=mypassword");
cnn.Open();
// Removes the encryption on an encrypted database.
cnn.ChangePassword(null);
Geben Sie zum Öffnen einer vorhandenen verschlüsselten Datenbank oder zum Erstellen einer neuen verschlüsselten Datenbank ein Kennwort an, ConnectionString
wie im vorherigen Beispiel gezeigt, oder rufen Sie die SetPassword()
Funktion auf, bevor Sie eine neue öffnen SQLiteConnection
. Die in der angegebenen Kennwörter ConnectionString
müssen Klartext sein, die in der SetPassword()
Funktion angegebenen Kennwörter können jedoch Binärbyte-Arrays sein.
// Opens an encrypted database by calling SetPassword()
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.SetPassword(new byte[] { 0xFF, 0xEE, 0xDD, 0x10, 0x20, 0x30 });
cnn.Open();
// The connection is now usable
Standardmäßig verwendet das Schlüsselwort ATTACH denselben Verschlüsselungsschlüssel wie die Hauptdatenbank, wenn eine andere Datenbankdatei an eine vorhandene Verbindung angehängt wird. Um dieses Verhalten zu ändern, verwenden Sie den KEY-Modifikator wie folgt:
Wenn Sie eine verschlüsselte Datenbank mit einem Klartextkennwort anhängen:
// Attach to a database using a different key than the main database
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();
So hängen Sie eine verschlüsselte Datenbank mit einem binären Kennwort an:
// Attach to a database encrypted with a binary key
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();