Вы можете использовать встроенное шифрование провайдера sqlite .net (System.Data.SQLite). Подробнее см. Http://web.archive.org/web/20070813071554/http://sqlite.phxsoftware.com/forums/t/130.aspx
Чтобы зашифровать существующую незашифрованную базу данных или изменить пароль зашифрованной базы данных , откройте базу данных и затем используйте функцию ChangePassword () SQLiteConnection:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.Open();
cnn.ChangePassword("mypassword");
Чтобы расшифровать существующий зашифрованный вызов базы данныхChangePassword()
с помощью пароля NULL
или ""
:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3;Password=mypassword");
cnn.Open();
cnn.ChangePassword(null);
Чтобы открыть существующую зашифрованную базу данных или создать новую зашифрованную базу данных, укажите пароль в, ConnectionString
как показано в предыдущем примере, или вызовите SetPassword()
функцию перед открытием новой SQLiteConnection
. Пароли, указанные в, ConnectionString
должны быть открытым текстом, но пароли, предоставленные в SetPassword()
функции, могут быть двоичными массивами байтов.
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.SetPassword(new byte[] { 0xFF, 0xEE, 0xDD, 0x10, 0x20, 0x30 });
cnn.Open();
По умолчанию ключевое слово ATTACH будет использовать тот же ключ шифрования, что и основная база данных, при присоединении другого файла базы данных к существующему соединению. Чтобы изменить это поведение, вы используете модификатор KEY следующим образом:
Если вы подключаете зашифрованную базу данных с использованием пароля в виде открытого текста:
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();
Чтобы прикрепить зашифрованную базу данных с использованием двоичного пароля:
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();