Могу ли я шифровать SQLite базу данных?
Я использую базу данных SQLite версии 3 с приложением Windows С#.
Я хочу зашифровать файл базы данных SQLite с помощью пароля или любого другого способа шифрования, чтобы клиенты не открывали их из папки программных файлов.
Мне не нужны никакие способы шифрования во время выполнения, я просто хочу, чтобы файл базы данных отображал поле пароля, когда клиент пытается открыть его из файлов программы. thanks
Edit
и если я зашифровал его из кода, клиент может открыть его, когда установка завершена и файл db передан в файлы программы, прежде чем открывать программу для выполнения шифрования, не так ли?
Ответы
Ответ 1
Я использую SQLite версии 3, отлично работает!
Вы должны сделать это:
//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();
}
после этого, если пользователь пытается открыть базу данных. скажет, что защищен администратором или база данных зашифрована или не является базой данных или поврежденным файлом!
Ответ 2
Нашел в этом форум сообщение, указывающее, что..
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.
Если вы можете/хотите использовать какое-то расширение для SQLite, вы также можете попробовать Расширение расширения SQLite (SEE) или SQLite Crypt
Но вы можете изменить/установить пароль для своей базы данных , используя SQLite.Datastrong > , как показано в в этой статье.
Ответ 3
К сожалению, пароль в SQlite файле может быть добавлен или удален или изменен только из кода. Для этого вам нужно пространство имен System.Data.SQLite
, которое предоставит вам методы, а также файлы адаптеров и соединений для этого.
Ответ 4
Вы можете использовать встроенное шифрование поставщика sq-lite
.net(System.Data.SQLite).
попробуйте следующее:
http://sqlite.phxsoftware.com/forums/t/130.aspx введите ссылку здесь
Или используйте:
API SQLiteCrypt